diff options
author | Mark Spruiell <mes@zeroc.com> | 2014-03-19 12:45:55 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2014-03-19 12:45:55 -0700 |
commit | cdcffbcc3c3c052afdeb772ff0167e7a90b525bb (patch) | |
tree | 4f16ee41ef7d33394c44e9db81e4d6cd89908250 /cpp/src/slice2js/JsUtil.h | |
parent | fixing testicedist.py for 5487 (diff) | |
download | ice-cdcffbcc3c3c052afdeb772ff0167e7a90b525bb.tar.bz2 ice-cdcffbcc3c3c052afdeb772ff0167e7a90b525bb.tar.xz ice-cdcffbcc3c3c052afdeb772ff0167e7a90b525bb.zip |
merging javascript branch
Diffstat (limited to 'cpp/src/slice2js/JsUtil.h')
-rw-r--r-- | cpp/src/slice2js/JsUtil.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/cpp/src/slice2js/JsUtil.h b/cpp/src/slice2js/JsUtil.h new file mode 100644 index 00000000000..0368c62a5dc --- /dev/null +++ b/cpp/src/slice2js/JsUtil.h @@ -0,0 +1,51 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef JS_UTIL_H +#define JS_UTIL_H + +#include <Slice/Parser.h> +#include <IceUtil/OutputUtil.h> + +namespace Slice +{ + +class JsGenerator : private ::IceUtil::noncopyable +{ +public: + + virtual ~JsGenerator() {}; + +protected: + + static bool isClassType(const TypePtr&); + static std::string localProxyHelper(const TypePtr&); + static std::string fixId(const std::string&, bool = false); + static std::string fixId(const ContainedPtr&, bool = false); + static std::string getOptionalFormat(const TypePtr&); + static std::string getStaticId(const TypePtr&); + static std::string typeToString(const TypePtr&, bool = false); + static std::string getLocalScope(const std::string&); + static std::string getReference(const std::string&, const std::string&); + + static std::string getHelper(const TypePtr&); + // + // Generate code to marshal or unmarshal a type + // + void writeMarshalUnmarshalCode(::IceUtilInternal::Output&, const TypePtr&, const std::string&, bool); + void writeOptionalMarshalUnmarshalCode(::IceUtilInternal::Output&, const TypePtr&, const std::string&, int, bool); + +private: + + std::vector< std::string> _seenProxy; +}; + +} + +#endif |