diff options
Diffstat (limited to 'cpp/src/slice2java')
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 115 | ||||
-rw-r--r-- | cpp/src/slice2java/Gen.h | 20 | ||||
-rw-r--r-- | cpp/src/slice2java/GenCompat.cpp | 163 | ||||
-rw-r--r-- | cpp/src/slice2java/GenCompat.h | 30 | ||||
-rw-r--r-- | cpp/src/slice2java/Main.cpp | 45 |
5 files changed, 209 insertions, 164 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index 6fea7f223f1..376a8edd86e 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -144,8 +144,9 @@ string ofFactory(const TypePtr& type) } -Slice::JavaVisitor::JavaVisitor(const string& dir) : - JavaGenerator(dir) +Slice::JavaVisitor::JavaVisitor(const string& dir, int warningLevel) : + JavaGenerator(dir), + ParserVisitor(warningLevel) { } @@ -2298,10 +2299,12 @@ Slice::JavaVisitor::writeServantDocComment(Output& out, const OperationPtr& p, c out << nl << " **/"; } -Slice::Gen::Gen(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir) : +Slice::Gen::Gen(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir, + int warningLevel) : _base(base), _includePaths(includePaths), - _dir(dir) + _dir(dir), + _warningLevel(warningLevel) { } @@ -2312,31 +2315,31 @@ Slice::Gen::~Gen() void Slice::Gen::generate(const UnitPtr& p) { - JavaGenerator::validateMetaData(p); + JavaGenerator::validateMetaData(p, _warningLevel); - PackageVisitor packageVisitor(_dir); + PackageVisitor packageVisitor(_dir, _warningLevel); p->visit(&packageVisitor, false); - TypesVisitor typesVisitor(_dir); + TypesVisitor typesVisitor(_dir, _warningLevel); p->visit(&typesVisitor, false); - CompactIdVisitor compactIdVisitor(_dir); + CompactIdVisitor compactIdVisitor(_dir, _warningLevel); p->visit(&compactIdVisitor, false); - HelperVisitor helperVisitor(_dir); + HelperVisitor helperVisitor(_dir, _warningLevel); p->visit(&helperVisitor, false); - ProxyVisitor proxyVisitor(_dir); + ProxyVisitor proxyVisitor(_dir, _warningLevel); p->visit(&proxyVisitor, false); - DispatcherVisitor dispatcherVisitor(_dir); + DispatcherVisitor dispatcherVisitor(_dir, _warningLevel); p->visit(&dispatcherVisitor, false); } void Slice::Gen::generateImpl(const UnitPtr& p) { - ImplVisitor implVisitor(_dir); + ImplVisitor implVisitor(_dir, _warningLevel); p->visit(&implVisitor, false); } @@ -2395,8 +2398,8 @@ Slice::Gen::writeChecksumClass(const string& checksumClass, const string& dir, c out << nl; } -Slice::Gen::PackageVisitor::PackageVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::PackageVisitor::PackageVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -2420,8 +2423,8 @@ Slice::Gen::PackageVisitor::visitModuleStart(const ModulePtr& p) return false; } -Slice::Gen::TypesVisitor::TypesVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::TypesVisitor::TypesVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -2760,9 +2763,12 @@ Slice::Gen::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -2773,10 +2779,13 @@ Slice::Gen::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -3285,9 +3294,12 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -3298,10 +3310,13 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for exception `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for exception `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -3598,9 +3613,12 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -3611,10 +3629,13 @@ Slice::Gen::TypesVisitor::visitStructEnd(const StructPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for struct `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for struct `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -4139,8 +4160,8 @@ Slice::Gen::TypesVisitor::validateMethod(const OperationList& ops, const std::st return true; } -Slice::Gen::CompactIdVisitor::CompactIdVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::CompactIdVisitor::CompactIdVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -4169,8 +4190,8 @@ Slice::Gen::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::Gen::HelperVisitor::HelperVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::HelperVisitor::HelperVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -4334,8 +4355,8 @@ Slice::Gen::HelperVisitor::visitDictionary(const DictionaryPtr& p) close(); } -Slice::Gen::ProxyVisitor::ProxyVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::ProxyVisitor::ProxyVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -5089,8 +5110,8 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) } } -Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::DispatcherVisitor::DispatcherVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } @@ -5163,8 +5184,8 @@ Slice::Gen::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::Gen::ImplVisitor::ImplVisitor(const string& dir) : - JavaVisitor(dir) +Slice::Gen::ImplVisitor::ImplVisitor(const string& dir, int warningLevel) : + JavaVisitor(dir, warningLevel) { } diff --git a/cpp/src/slice2java/Gen.h b/cpp/src/slice2java/Gen.h index 11c7d0f7e45..d2ce2ef44c1 100644 --- a/cpp/src/slice2java/Gen.h +++ b/cpp/src/slice2java/Gen.h @@ -25,7 +25,7 @@ public: protected: - JavaVisitor(const std::string&); + JavaVisitor(const std::string&, int); enum ParamDir { InParam, OutParam }; @@ -129,7 +129,8 @@ public: Gen(const std::string&, const std::string&, const std::vector<std::string>&, - const std::string&); + const std::string&, + int); ~Gen(); void generate(const UnitPtr&); @@ -142,12 +143,13 @@ private: std::string _base; std::vector<std::string> _includePaths; std::string _dir; + int _warningLevel; class PackageVisitor : public JavaVisitor { public: - PackageVisitor(const std::string&); + PackageVisitor(const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); }; @@ -156,7 +158,7 @@ private: { public: - TypesVisitor(const std::string&); + TypesVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitClassDefEnd(const ClassDefPtr&); @@ -181,7 +183,7 @@ private: { public: - CompactIdVisitor(const std::string&); + CompactIdVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); }; @@ -190,7 +192,7 @@ private: { public: - HelperVisitor(const std::string&); + HelperVisitor(const std::string&, int); virtual void visitSequence(const SequencePtr&); virtual void visitDictionary(const DictionaryPtr&); @@ -200,7 +202,7 @@ private: { public: - ProxyVisitor(const std::string&); + ProxyVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitClassDefEnd(const ClassDefPtr&); @@ -211,7 +213,7 @@ private: { public: - DispatcherVisitor(const std::string&); + DispatcherVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); }; @@ -220,7 +222,7 @@ private: { public: - ImplVisitor(const std::string&); + ImplVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); diff --git a/cpp/src/slice2java/GenCompat.cpp b/cpp/src/slice2java/GenCompat.cpp index 7bccb844408..6579642d280 100644 --- a/cpp/src/slice2java/GenCompat.cpp +++ b/cpp/src/slice2java/GenCompat.cpp @@ -191,8 +191,9 @@ writeParamList(Output& out, vector<string> params, bool end = true, bool newLine } -Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir) : - JavaCompatGenerator(dir) +Slice::JavaCompatVisitor::JavaCompatVisitor(const string& dir, int warningLevel) : + JavaCompatGenerator(dir), + ParserVisitor(warningLevel) { } @@ -2278,11 +2279,13 @@ Slice::JavaCompatVisitor::writeDocCommentParam(Output& out, const OperationPtr& } } -Slice::GenCompat::GenCompat(const string& /*name*/, const string& base, const vector<string>& includePaths, const string& dir, bool tie) : +Slice::GenCompat::GenCompat(const string& /*name*/, const string& base, const vector<string>& includePaths, + const string& dir, bool tie, int warningLevel) : _base(base), _includePaths(includePaths), _dir(dir), - _tie(tie) + _tie(tie), + _warningLevel(warningLevel) { } @@ -2293,47 +2296,47 @@ Slice::GenCompat::~GenCompat() void Slice::GenCompat::generate(const UnitPtr& p) { - JavaGenerator::validateMetaData(p); + JavaGenerator::validateMetaData(p, _warningLevel); - OpsVisitor opsVisitor(_dir); + OpsVisitor opsVisitor(_dir, _warningLevel); p->visit(&opsVisitor, false); - PackageVisitor packageVisitor(_dir); + PackageVisitor packageVisitor(_dir, _warningLevel); p->visit(&packageVisitor, false); - TypesVisitor typesVisitor(_dir); + TypesVisitor typesVisitor(_dir, _warningLevel); p->visit(&typesVisitor, false); - CompactIdVisitor compactIdVisitor(_dir); + CompactIdVisitor compactIdVisitor(_dir, _warningLevel); p->visit(&compactIdVisitor, false); - HolderVisitor holderVisitor(_dir); + HolderVisitor holderVisitor(_dir, _warningLevel); p->visit(&holderVisitor, false); - HelperVisitor helperVisitor(_dir); + HelperVisitor helperVisitor(_dir, _warningLevel); p->visit(&helperVisitor, false); - ProxyVisitor proxyVisitor(_dir); + ProxyVisitor proxyVisitor(_dir, _warningLevel); p->visit(&proxyVisitor, false); - DispatcherVisitor dispatcherVisitor(_dir, _tie); + DispatcherVisitor dispatcherVisitor(_dir, _tie, _warningLevel); p->visit(&dispatcherVisitor, false); - AsyncVisitor asyncVisitor(_dir); + AsyncVisitor asyncVisitor(_dir, _warningLevel); p->visit(&asyncVisitor, false); } void Slice::GenCompat::generateImpl(const UnitPtr& p) { - ImplVisitor implVisitor(_dir); + ImplVisitor implVisitor(_dir, _warningLevel); p->visit(&implVisitor, false); } void Slice::GenCompat::generateImplTie(const UnitPtr& p) { - ImplTieVisitor implTieVisitor(_dir); + ImplTieVisitor implTieVisitor(_dir, _warningLevel); p->visit(&implTieVisitor, false); } @@ -2392,8 +2395,8 @@ Slice::GenCompat::writeChecksumClass(const string& checksumClass, const string& out << nl; } -Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::OpsVisitor::OpsVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -2527,8 +2530,8 @@ Slice::GenCompat::OpsVisitor::writeOperations(const ClassDefPtr& p, bool noCurre close(); } -Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::PackageVisitor::PackageVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -2552,8 +2555,8 @@ Slice::GenCompat::PackageVisitor::visitModuleStart(const ModulePtr& p) return false; } -Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::TypesVisitor::TypesVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -3014,9 +3017,12 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -3027,10 +3033,13 @@ Slice::GenCompat::TypesVisitor::visitClassDefEnd(const ClassDefPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -3434,9 +3443,12 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for exception `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -3447,10 +3459,13 @@ Slice::GenCompat::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for exception `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for exception `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -3750,9 +3765,12 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for struct `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -3763,10 +3781,13 @@ Slice::GenCompat::TypesVisitor::visitStructEnd(const StructPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for struct `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for struct `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -4191,8 +4212,8 @@ Slice::GenCompat::TypesVisitor::validateMethod(const OperationList& ops, const s return true; } -Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::CompactIdVisitor::CompactIdVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -4221,8 +4242,8 @@ Slice::GenCompat::CompactIdVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::HolderVisitor::HolderVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -4370,8 +4391,8 @@ Slice::GenCompat::HolderVisitor::writeHolder(const TypePtr& p) close(); } -Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::HelperVisitor::HelperVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -5303,8 +5324,8 @@ Slice::GenCompat::HelperVisitor::writeOperation(const ClassDefPtr& p, const stri } } -Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::ProxyVisitor::ProxyVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -5623,8 +5644,8 @@ Slice::GenCompat::ProxyVisitor::visitOperation(const OperationPtr& p) } } -Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie) : - JavaCompatVisitor(dir), +Slice::GenCompat::DispatcherVisitor::DispatcherVisitor(const string& dir, bool tie, int warningLevel) : + JavaCompatVisitor(dir, warningLevel), _tie(tie) { } @@ -5825,9 +5846,12 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) string::size_type pos = serialVersionUID.rfind(":") + 1; if(pos == string::npos) { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } else @@ -5838,10 +5862,13 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) { if(!stringToInt64(serialVersionUID, v)) // conversion error { - ostringstream os; - os << "ignoring invalid serialVersionUID for class `" << p->scoped() - << "'; generating default value"; - emitWarning("", "", os.str()); + if(warningLevel() > 0) + { + ostringstream os; + os << "ignoring invalid serialVersionUID for class `" << p->scoped() + << "'; generating default value"; + emitWarning("", "", os.str()); + } out << computeSerialVersionUUID(p); } } @@ -5860,8 +5887,8 @@ Slice::GenCompat::DispatcherVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::BaseImplVisitor::BaseImplVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } @@ -6125,8 +6152,8 @@ Slice::GenCompat::BaseImplVisitor::writeOperation(Output& out, const string& pac } } -Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir) : - BaseImplVisitor(dir) +Slice::GenCompat::ImplVisitor::ImplVisitor(const string& dir, int warningLevel) : + BaseImplVisitor(dir, warningLevel) { } @@ -6181,8 +6208,8 @@ Slice::GenCompat::ImplVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir) : - BaseImplVisitor(dir) +Slice::GenCompat::ImplTieVisitor::ImplTieVisitor(const string& dir, int warningLevel) : + BaseImplVisitor(dir, warningLevel) { } @@ -6270,8 +6297,8 @@ Slice::GenCompat::ImplTieVisitor::visitClassDefStart(const ClassDefPtr& p) return false; } -Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir) : - JavaCompatVisitor(dir) +Slice::GenCompat::AsyncVisitor::AsyncVisitor(const string& dir, int warningLevel) : + JavaCompatVisitor(dir, warningLevel) { } diff --git a/cpp/src/slice2java/GenCompat.h b/cpp/src/slice2java/GenCompat.h index 5f8ba85aa9d..25d2d0b7091 100644 --- a/cpp/src/slice2java/GenCompat.h +++ b/cpp/src/slice2java/GenCompat.h @@ -25,7 +25,7 @@ public: protected: - JavaCompatVisitor(const std::string&); + JavaCompatVisitor(const std::string&, int); enum ParamDir { InParam, OutParam }; @@ -131,7 +131,8 @@ public: const std::string&, const std::vector<std::string>&, const std::string&, - bool); + bool, + int); ~GenCompat(); void generate(const UnitPtr&); @@ -146,12 +147,13 @@ private: std::vector<std::string> _includePaths; std::string _dir; bool _tie; + int _warningLevel; class OpsVisitor : public JavaCompatVisitor { public: - OpsVisitor(const std::string&); + OpsVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); @@ -163,7 +165,7 @@ private: { public: - PackageVisitor(const std::string&); + PackageVisitor(const std::string&, int); virtual bool visitModuleStart(const ModulePtr&); }; @@ -172,7 +174,7 @@ private: { public: - TypesVisitor(const std::string&); + TypesVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitClassDefEnd(const ClassDefPtr&); @@ -196,7 +198,7 @@ private: { public: - CompactIdVisitor(const std::string&); + CompactIdVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); }; @@ -205,7 +207,7 @@ private: { public: - HolderVisitor(const std::string&); + HolderVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual bool visitStructStart(const StructPtr&); @@ -222,7 +224,7 @@ private: { public: - HelperVisitor(const std::string&); + HelperVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitSequence(const SequencePtr&); @@ -237,7 +239,7 @@ private: { public: - ProxyVisitor(const std::string&); + ProxyVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); virtual void visitClassDefEnd(const ClassDefPtr&); @@ -248,7 +250,7 @@ private: { public: - DispatcherVisitor(const std::string&, bool); + DispatcherVisitor(const std::string&, bool, int); virtual bool visitClassDefStart(const ClassDefPtr&); @@ -260,7 +262,7 @@ private: { public: - BaseImplVisitor(const std::string&); + BaseImplVisitor(const std::string&, int); protected: @@ -286,7 +288,7 @@ private: { public: - ImplVisitor(const std::string&); + ImplVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); }; @@ -295,7 +297,7 @@ private: { public: - ImplTieVisitor(const std::string&); + ImplTieVisitor(const std::string&, int); virtual bool visitClassDefStart(const ClassDefPtr&); }; @@ -304,7 +306,7 @@ private: { public: - AsyncVisitor(const std::string&); + AsyncVisitor(const std::string&, int); virtual void visitOperation(const OperationPtr&); }; diff --git a/cpp/src/slice2java/Main.cpp b/cpp/src/slice2java/Main.cpp index 86b07bf60d5..2ea06372755 100644 --- a/cpp/src/slice2java/Main.cpp +++ b/cpp/src/slice2java/Main.cpp @@ -87,6 +87,7 @@ usage(const string& n) " deprecated: use instead [[\"ice-prefix\"]] metadata.\n" "--underscore Allow underscores in Slice identifiers\n" " deprecated: use instead [[\"underscore\"]] metadata.\n" + "--no-warn Disable all warnings.\n" ; } @@ -115,6 +116,7 @@ compile(const vector<string>& argv) opts.addOpt("", "checksum", IceUtilInternal::Options::NeedArg); opts.addOpt("", "meta", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat); opts.addOpt("", "compat"); + opts.addOpt("", "no-warn"); bool validate = find(argv.begin(), argv.end(), "--validate") != argv.end(); vector<string>args; @@ -193,6 +195,8 @@ compile(const vector<string>& argv) bool compat = opts.isSet("compat"); + int warningLevel = opts.isSet("no-warn") ? 0 : 1; + if(args.empty()) { consoleErr << argv[0] << ": error: no input file" << endl; @@ -350,7 +354,7 @@ compile(const vector<string>& argv) { if(compat) { - GenCompat gen(argv[0], icecpp->getBaseName(), includePaths, output, tie); + GenCompat gen(argv[0], icecpp->getBaseName(), includePaths, output, tie, warningLevel); gen.generate(p); if(impl) { @@ -360,39 +364,28 @@ compile(const vector<string>& argv) { gen.generateImplTie(p); } - if(!checksumClass.empty()) - { - // - // Calculate checksums for the Slice definitions in the unit. - // - ChecksumMap m = createChecksums(p); - copy(m.begin(), m.end(), inserter(checksums, checksums.begin())); - } - if(listGenerated) - { - FileTracker::instance()->setOutput(os.str(), false); - } } else { - Gen gen(argv[0], icecpp->getBaseName(), includePaths, output); + Gen gen(argv[0], icecpp->getBaseName(), includePaths, output, warningLevel); gen.generate(p); if(impl) { gen.generateImpl(p); } - if(!checksumClass.empty()) - { - // - // Calculate checksums for the Slice definitions in the unit. - // - ChecksumMap m = createChecksums(p); - copy(m.begin(), m.end(), inserter(checksums, checksums.begin())); - } - if(listGenerated) - { - FileTracker::instance()->setOutput(os.str(), false); - } + } + + if(!checksumClass.empty()) + { + // + // Calculate checksums for the Slice definitions in the unit. + // + ChecksumMap m = createChecksums(p); + copy(m.begin(), m.end(), inserter(checksums, checksums.begin())); + } + if(listGenerated) + { + FileTracker::instance()->setOutput(os.str(), false); } } catch(const Slice::FileException& ex) |