diff options
author | Mark Spruiell <mes@zeroc.com> | 2001-12-08 23:16:06 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2001-12-08 23:16:06 +0000 |
commit | de3b9ab728ddbac90451194e9d2da998926783df (patch) | |
tree | 080704203fe8f20f49edd0033bbcc7b5e58aa08f /cpp/src/slice2java/Gen.h | |
parent | translator update (diff) | |
download | ice-de3b9ab728ddbac90451194e9d2da998926783df.tar.bz2 ice-de3b9ab728ddbac90451194e9d2da998926783df.tar.xz ice-de3b9ab728ddbac90451194e9d2da998926783df.zip |
initial support for proxies, marshalling
Diffstat (limited to 'cpp/src/slice2java/Gen.h')
-rw-r--r-- | cpp/src/slice2java/Gen.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/cpp/src/slice2java/Gen.h b/cpp/src/slice2java/Gen.h index b7c92e106c9..e0af88b28d1 100644 --- a/cpp/src/slice2java/Gen.h +++ b/cpp/src/slice2java/Gen.h @@ -48,6 +48,8 @@ protected: // scope is provided, the scope will be removed from the result. // std::string getAbsolute(const std::string&, + const std::string& = std::string(), + const std::string& = std::string(), const std::string& = std::string()) const; // @@ -64,6 +66,34 @@ protected: std::string typeToString(const TypePtr&, TypeMode mode, const std::string& = std::string()) const; + // + // Compose the parameter list for an operation + // + std::string getParams(const OperationPtr&, const std::string&); + + // + // Compose the argument list for an operation + // + std::string getArgs(const OperationPtr&, const std::string&); + + // + // Generate a throws clause containing only non-local exceptions + // + void writeThrowsClause(const std::string&, const ExceptionList&); + + // + // Generate a throws clause for delegate operations containing only + // non-local exceptions + // + void writeDelegateThrowsClause(const std::string&, const ExceptionList&); + + // + // Generate code to marshal or unmarshal a type + // + void writeMarshalUnmarshalCode(Output&, const std::string&, const TypePtr&, + const std::string&, bool, int&, + bool = false); + private: void printHeader(); @@ -143,6 +173,44 @@ private: virtual void visitDictionary(const DictionaryPtr&); virtual void visitEnum(const EnumPtr&); }; + + class ProxyVisitor : public JavaVisitor + { + public: + + ProxyVisitor(const std::string&, const std::string&); + + virtual bool visitClassDefStart(const ClassDefPtr&); + virtual void visitClassDefEnd(const ClassDefPtr&); + virtual void visitOperation(const OperationPtr&); + }; + + class ProxyHelperVisitor : public JavaVisitor + { + public: + + ProxyHelperVisitor(const std::string&, const std::string&); + + virtual bool visitClassDefStart(const ClassDefPtr&); + }; + + class DelegateVisitor : public JavaVisitor + { + public: + + DelegateVisitor(const std::string&, const std::string&); + + virtual bool visitClassDefStart(const ClassDefPtr&); + }; + + class DelegateMVisitor : public JavaVisitor + { + public: + + DelegateMVisitor(const std::string&, const std::string&); + + virtual bool visitClassDefStart(const ClassDefPtr&); + }; }; } |