diff options
author | Mark Spruiell <mes@zeroc.com> | 2007-11-05 12:19:49 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2007-11-05 12:19:49 -0800 |
commit | 3c8924663df8629b33c2ddd38907c4bf2eeb83cd (patch) | |
tree | 83b63f2396201019163d140555e42d79f82e46d3 /cpp/include/Ice/Stream.h | |
parent | Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff) | |
download | ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.tar.bz2 ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.tar.xz ice-3c8924663df8629b33c2ddd38907c4bf2eeb83cd.zip |
- Fixing bug 2522 for Python. This involved adding the C++ class
UserExceptionWriter so that the Python extension can wrap a native
Python user exception into something that the C++ run time can
marshal. Also ported the changes to the servantLocator test.
- Implementing UserExceptionWriter in Java and C#.
- Consolidating the source files for the C# streaming API.
Diffstat (limited to 'cpp/include/Ice/Stream.h')
-rw-r--r-- | cpp/include/Ice/Stream.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/cpp/include/Ice/Stream.h b/cpp/include/Ice/Stream.h index 30955233120..526df7e11ad 100644 --- a/cpp/include/Ice/Stream.h +++ b/cpp/include/Ice/Stream.h @@ -198,6 +198,30 @@ private: void* _arg; }; +class ICE_API UserExceptionWriter : public UserException +{ +public: + + UserExceptionWriter(const Ice::CommunicatorPtr&); + ~UserExceptionWriter() throw(); + + virtual void write(const OutputStreamPtr&) const = 0; + virtual bool usesClasses() const = 0; + + virtual std::string ice_name() const = 0; + virtual Ice::Exception* ice_clone() const = 0; + virtual void ice_throw() const = 0; + + virtual void __write(IceInternal::BasicStream*) const; + virtual void __read(IceInternal::BasicStream*, bool); + + virtual bool __usesClasses() const; + +protected: + + Ice::CommunicatorPtr _communicator; +}; + } #endif |