Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / tao / Messaging / ExceptionHolder_i.h
blob827388228e7bfede2516c5e799f77776ff9d8eed
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file ExceptionHolder_i.h
7 * @author Johnny Willemsen <jwillemsen@remedy.nl>
8 */
9 //=============================================================================
11 #ifndef TAO_MESSAGING_EXCEPTIONHOLDER_I_H
12 #define TAO_MESSAGING_EXCEPTIONHOLDER_I_H
13 #include /**/ "ace/pre.h"
15 #include "tao/Messaging/messaging_export.h"
17 #if !defined (ACE_LACKS_PRAGMA_ONCE)
18 # pragma once
19 #endif /* ACE_LACKS_PRAGMA_ONCE */
21 #include "tao/orbconf.h"
23 #include "tao/Messaging/ExceptionHolderA.h"
24 #include "tao/Messaging/ExceptionHolderC.h"
25 #include "tao/Valuetype/ValueFactory.h"
27 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 namespace Dynamic
31 class ExceptionList;
34 namespace Messaging
36 class ReplyHandler;
39 namespace TAO
41 struct Exception_Data;
43 class TAO_Messaging_Export ExceptionHolder
44 : public virtual ::OBV_Messaging::ExceptionHolder,
45 public virtual ::CORBA::DefaultValueRefCountBase
47 public:
48 ExceptionHolder ();
50 ExceptionHolder (
51 ::CORBA::Boolean is_system_exception,
52 ::CORBA::Boolean byte_order,
53 const ::CORBA::OctetSeq &marshaled_exception,
54 ::TAO::Exception_Data* data,
55 ::CORBA::ULong exceptions_count,
56 ACE_Char_Codeset_Translator *char_translator,
57 ACE_WChar_Codeset_Translator *wchar_translator);
59 void set_exception_data (::TAO::Exception_Data* data,
60 ::CORBA::ULong exceptions_count);
62 virtual void raise_exception ();
64 virtual void raise_exception_with_list (
65 const ::Dynamic::ExceptionList & exc_list);
67 virtual CORBA::ValueBase* _copy_value ();
69 protected:
70 virtual ~ExceptionHolder ();
72 private:
73 TAO::Exception_Data* data_;
74 CORBA::ULong count_;
75 ACE_Char_Codeset_Translator *char_translator_;
76 ACE_WChar_Codeset_Translator *wchar_translator_;
79 /**
80 * @class ExceptionHolderFactory
82 * @brief OBV factory implementation.
84 * Factory for ExceptionHolder
86 class TAO_Messaging_Export ExceptionHolderFactory :
87 public virtual CORBA::ValueFactoryBase
89 public:
90 virtual CORBA::ValueBase * create_for_unmarshal ();
94 TAO_END_VERSIONED_NAMESPACE_DECL
96 #include /**/ "ace/post.h"
97 #endif /* TAO_MESSAGING_EXCEPTIONHOLDER_I_H */