Classes |
struct | to_std_string |
| Helper classes for extracting bounded strings into std::string/wstring. More...
|
struct | to_std_wstring |
Public Types |
typedef ACE_Hash_Map_Manager
< void *, ACE_CString,
ACE_Null_Mutex > | Repo_Id_Map |
typedef Repo_Id_Map | Codebase_URL_Map |
typedef ACE_Hash_Map_Manager
< void *, void
*, ACE_Null_Mutex > | Value_Map |
typedef
TAO_Intrusive_Ref_Count_Object
< Repo_Id_Map, ACE_Null_Mutex > | RC_Repo_Id_Map |
typedef
TAO_Intrusive_Ref_Count_Object
< Codebase_URL_Map,
ACE_Null_Mutex > | RC_Codebase_URL_Map |
typedef
TAO_Intrusive_Ref_Count_Object
< Value_Map, ACE_Null_Mutex > | RC_Value_Map |
typedef
TAO_Intrusive_Ref_Count_Handle
< RC_Repo_Id_Map > | Repo_Id_Map_Handle |
typedef
TAO_Intrusive_Ref_Count_Handle
< RC_Codebase_URL_Map > | Codebase_URL_Map_Handle |
typedef
TAO_Intrusive_Ref_Count_Handle
< RC_Value_Map > | Value_Map_Handle |
Public Member Functions |
| TAO_InputCDR (const char *buf, size_t bufsiz, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| TAO_InputCDR (size_t bufsiz, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| TAO_InputCDR (const ACE_Message_Block *data, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| Create an input stream from an ACE_Message_Block.
|
| TAO_InputCDR (const ACE_Message_Block *data, ACE_Lock *lock, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| TAO_InputCDR (ACE_Data_Block *data, ACE_Message_Block::Message_Flags flag=0, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| Create an input stream from an ACE_Data_Block.
|
| TAO_InputCDR (ACE_Data_Block *data, ACE_Message_Block::Message_Flags flag, size_t read_pointer_position, size_t write_pointer_position, int byte_order=ACE_CDR_BYTE_ORDER, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR, TAO_ORB_Core *orb_core=0) |
| Create an input stream from an ACE_Data_Block.
|
| TAO_InputCDR (const TAO_InputCDR &rhs) |
| TAO_InputCDR (const TAO_InputCDR &rhs, size_t size, ACE_CDR::Long offset) |
| TAO_InputCDR (const TAO_InputCDR &rhs, size_t size) |
| TAO_InputCDR (const TAO_OutputCDR &rhs, ACE_Allocator *buffer_allocator=0, ACE_Allocator *data_block_allocator=0, ACE_Allocator *message_block_allocator=0, TAO_ORB_Core *orb_core=0) |
| Create an input CDR from an output CDR.
|
| TAO_InputCDR (ACE_InputCDR::Transfer_Contents rhs, TAO_ORB_Core *orb_core=0) |
| ~TAO_InputCDR (void) |
| Destructor.
|
TAO_ORB_Core * | orb_core (void) const |
| Accessor.
|
ACE_Message_Block::Message_Flags | clr_mb_flags (ACE_Message_Block::Message_Flags less_flags) |
Repo_Id_Map_Handle & | get_repo_id_map () |
Codebase_URL_Map_Handle & | get_codebase_url_map () |
Value_Map_Handle & | get_value_map () |
void | set_repo_id_map (Repo_Id_Map_Handle &map) |
void | set_codebase_url_map (Codebase_URL_Map_Handle &map) |
void | set_value_map (Value_Map_Handle &map) |
void | reset_vt_indirect_maps () |
Static Public Member Functions |
static void | throw_stub_exception (int error_num) |
static void | throw_skel_exception (int error_num) |
Private Attributes |
TAO_ORB_Core * | orb_core_ |
| The ORB_Core, required to extract object references.
|
Repo_Id_Map_Handle | repo_id_map_ |
| These maps are used by valuetype indirection support.
|
Codebase_URL_Map_Handle | codebase_map_ |
Value_Map_Handle | value_map_ |
A CDR stream for reading, i.e. for demarshalling.
This class is based on the the CORBA spec for Java (98-02-29), java class omg.org.CORBA.portable.InputStream. It diverts in a few ways: + Operations to retrieve basic types take parameters by reference. + Operations taking arrays don't have offsets, because in C++ it is easier to describe an array starting from x+offset. + Operations return an error status, because exceptions are not widely available in C++ (yet). A particularly useful static member function for this buffer is an interpretive encoding routine, usable as a typecode interpreter callback. Ditto for decoding. These are used to support all OMG-IDL datatypes, even those not supported directly by put/get primitives.