diff options
Diffstat (limited to 'cpp/src/slice2cpp/Gen.h')
-rw-r--r-- | cpp/src/slice2cpp/Gen.h | 90 |
1 files changed, 70 insertions, 20 deletions
diff --git a/cpp/src/slice2cpp/Gen.h b/cpp/src/slice2cpp/Gen.h index 2a70c01c66f..5074240bc73 100644 --- a/cpp/src/slice2cpp/Gen.h +++ b/cpp/src/slice2cpp/Gen.h @@ -37,8 +37,8 @@ public: void generate(const UnitPtr&); void closeOutput(); - static bool setUseWstring(ContainedPtr, std::list<bool>&, bool); - static bool resetUseWstring(std::list<bool>&); + static int setUseWstring(ContainedPtr, std::list<int>&, int); + static int resetUseWstring(std::list<int>&); private: @@ -100,8 +100,8 @@ private: std::string _dllExport; bool _stream; bool _doneStaticSymbol; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class ProxyDeclVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -144,8 +144,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class DelegateVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -168,8 +168,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class DelegateMVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -192,8 +192,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class DelegateDVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -216,8 +216,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class ObjectDeclVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -268,8 +268,58 @@ private: std::string _dllExport; bool _stream; bool _doneStaticSymbol; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; + }; + + class AsyncCallbackVisitor : private ::IceUtil::noncopyable, public ParserVisitor + { + public: + + AsyncCallbackVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + + virtual bool visitUnitStart(const UnitPtr&); + virtual void visitUnitEnd(const UnitPtr&); + virtual bool visitModuleStart(const ModulePtr&); + virtual void visitModuleEnd(const ModulePtr&); + virtual bool visitClassDefStart(const ClassDefPtr&); + virtual void visitClassDefEnd(const ClassDefPtr&); + virtual void visitOperation(const OperationPtr&); + + private: + + ::IceUtilInternal::Output& H; + ::IceUtilInternal::Output& C; + + std::string _dllExport; + int _useWstring; + std::list<int> _useWstringHist; + }; + + class AsyncCallbackTemplateVisitor : private ::IceUtil::noncopyable, public ParserVisitor + { + public: + + AsyncCallbackTemplateVisitor(::IceUtilInternal::Output&, ::IceUtilInternal::Output&, const std::string&); + + virtual bool visitUnitStart(const UnitPtr&); + virtual void visitUnitEnd(const UnitPtr&); + virtual bool visitModuleStart(const ModulePtr&); + virtual void visitModuleEnd(const ModulePtr&); + virtual bool visitClassDefStart(const ClassDefPtr&); + virtual void visitClassDefEnd(const ClassDefPtr&); + virtual void visitOperation(const OperationPtr&); + + private: + + void generateOperation(const OperationPtr&, bool); + + ::IceUtilInternal::Output& H; + ::IceUtilInternal::Output& C; + + std::string _dllExport; + int _useWstring; + std::list<int> _useWstringHist; }; class IceInternalVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -327,8 +377,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; // // Generate code to emit a local variable declaration and initialize it @@ -360,8 +410,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class AsyncImplVisitor : private ::IceUtil::noncopyable, public ParserVisitor @@ -384,8 +434,8 @@ private: ::IceUtilInternal::Output& C; std::string _dllExport; - bool _useWstring; - std::list<bool> _useWstringHist; + int _useWstring; + std::list<int> _useWstringHist; }; class StreamVisitor : private ::IceUtil::noncopyable, public ParserVisitor |