summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-11-26 22:58:16 +0100
committerJose <jose@zeroc.com>2009-11-26 22:58:16 +0100
commit9aef7822702155a4bd562765c672d73dcbe8b471 (patch)
tree984b00a3fea5615b594e3e857eadceeb5766283c /cpp/src
parentAdded generated directory for invoke test (diff)
downloadice-9aef7822702155a4bd562765c672d73dcbe8b471.tar.bz2
ice-9aef7822702155a4bd562765c672d73dcbe8b471.tar.xz
ice-9aef7822702155a4bd562765c672d73dcbe8b471.zip
4385 - new StreamApi & UserExecption
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp21
-rw-r--r--cpp/src/slice2cpp/Gen.h2
2 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 1b0dd3d0294..fa2e480a625 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -6636,6 +6636,27 @@ Slice::Gen::StreamVisitor::visitModuleEnd(const ModulePtr&)
}
bool
+Slice::Gen::StreamVisitor::visitExceptionStart(const ExceptionPtr& p)
+{
+ if(!p->isLocal())
+ {
+ string scoped = p->scoped();
+ H << nl << sp << "template<>";
+ H << nl << "struct StreamTrait< " << fixKwd(scoped) << " >" << nl;
+ H << sb;
+ H << nl << "static const ::Ice::StreamTraitType type = ::Ice::StreamTraitTypeUserException;" << nl;
+ H << nl << "static const int enumLimit = 0;";
+ H << eb << ";" << nl;
+ }
+ return true;
+}
+
+void
+Slice::Gen::StreamVisitor::visitExceptionEnd(const ExceptionPtr&)
+{
+}
+
+bool
Slice::Gen::StreamVisitor::visitStructStart(const StructPtr& p)
{
if(!p->isLocal())
diff --git a/cpp/src/slice2cpp/Gen.h b/cpp/src/slice2cpp/Gen.h
index 5074240bc73..a7834e9c75e 100644
--- a/cpp/src/slice2cpp/Gen.h
+++ b/cpp/src/slice2cpp/Gen.h
@@ -448,6 +448,8 @@ private:
virtual void visitModuleEnd(const ModulePtr&);
virtual bool visitStructStart(const StructPtr&);
virtual void visitStructEnd(const StructPtr&);
+ virtual bool visitExceptionStart(const ExceptionPtr&);
+ virtual void visitExceptionEnd(const ExceptionPtr&);
virtual void visitEnum(const EnumPtr&);
private: