Public Types |
typedef ACE_Hash_Map_Manager
< ACE_CString, char
*, ACE_Null_Mutex > | Repo_Id_Map |
| typedef Repo_Id_Map | Codebase_URL_Map |
typedef ACE_Hash_Map_Manager
< void *, char
*, 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_OutputCDR (size_t size=0, int byte_order=ACE_CDR_BYTE_ORDER, ACE_Allocator *buffer_allocator=0, ACE_Allocator *data_block_allocator=0, ACE_Allocator *message_block_allocator=0, size_t memcpy_tradeoff=0, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR) |
| | TAO_OutputCDR (char *data, size_t size, int byte_order=ACE_CDR_BYTE_ORDER, ACE_Allocator *buffer_allocator=0, ACE_Allocator *data_block_allocator=0, ACE_Allocator *message_block_allocator=0, size_t memcpy_tradeoff=0, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR) |
| | TAO_OutputCDR (char *data, size_t size, int byte_order, ACE_Allocator *buffer_allocator, ACE_Allocator *data_block_allocator, ACE_Allocator *message_block_allocator, size_t memcpy_tradeoff, TAO_GIOP_Fragmentation_Strategy *fs, ACE_CDR::Octet major_version, ACE_CDR::Octet minor_version) |
| | TAO_OutputCDR (ACE_Message_Block *data, int byte_order=ACE_CDR_BYTE_ORDER, size_t memcpy_tradeoff=0, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR) |
| | TAO_OutputCDR (ACE_Data_Block *data, int byte_order=ACE_CDR_BYTE_ORDER, ACE_Allocator *message_block_allocator=0, size_t memcpy_tradeoff=0, TAO_GIOP_Fragmentation_Strategy *fs=0, ACE_CDR::Octet major_version=TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version=TAO_DEF_GIOP_MINOR) |
| | ~TAO_OutputCDR (void) |
| | Destructor.
|
| void | get_version (TAO_GIOP_Message_Version &giop_version) |
| Repo_Id_Map_Handle & | get_repo_id_map () |
| Value_Map_Handle & | get_value_map () |
| void | set_repo_id_map (Repo_Id_Map_Handle &map) |
| void | set_value_map (Value_Map_Handle &map) |
| void | reset_vt_indirect_maps () |
| int | offset (char *pos) |
| | Calculate the offset between pos and current wr_ptr.
|
|
These methods are only used when fragmenting outgoing GIOP requests and replies.
|
| bool | fragment_stream (ACE_CDR::ULong pending_alignment, ACE_CDR::ULong pending_length) |
| | Fragment this output CDR stream if necessary.
|
| bool | more_fragments (void) const |
| | Are there more data fragments to come?
|
| void | more_fragments (bool more) |
| | Specify whether there are more data fragments to come.
|
| void | message_attributes (CORBA::ULong request_id, TAO_Stub *stub, TAO_Message_Semantics message_semantics, ACE_Time_Value *timeout) |
| | Set fragmented message attributes.
|
| CORBA::ULong | request_id (void) const |
| | Fragmented message request ID.
|
| TAO_Stub * | stub (void) const |
| | Stub object associated with the request.
|
| TAO_Message_Semantics | message_semantics (void) const |
| | Message semantics (twoway, oneway, reply)
|
| ACE_Time_Value * | timeout (void) const |
| | Maximum time to wait for outgoing message to be sent.
|
Static Public Member Functions |
| static void | throw_stub_exception (int error_num) |
| static void | throw_skel_exception (int error_num) |
Private Member Functions |
| | TAO_OutputCDR (const TAO_OutputCDR &rhs) |
| TAO_OutputCDR & | operator= (const TAO_OutputCDR &rhs) |
Private Attributes |
| Repo_Id_Map_Handle | repo_id_map_ |
| | These maps are used by valuetype indirection support.
|
| Value_Map_Handle | value_map_ |
|
These attributes are only used when fragmenting outgoing GIOP requests and replies.
|
TAO_GIOP_Fragmentation_Strategy
*const | fragmentation_strategy_ |
| bool | more_fragments_ |
| | Are there more data fragments to come?
|
| CORBA::ULong | request_id_ |
| | Request ID for the request currently being marshaled.
|
| TAO_Stub * | stub_ |
| | Stub object associated with the request.
|
| TAO_Message_Semantics | message_semantics_ |
| | Twoway, oneway, reply?
|
| ACE_Time_Value * | timeout_ |
| | Request/reply send timeout.
|
Friends |
| class | TAO_InputCDR |
| | For reading from a output CDR stream.
|
A CDR stream for writing, i.e. for marshalling.
This class is based on the the CORBA spec for Java (98-02-29), java class omg.org.CORBA.portable.OutputStream. It diverts in a few ways:
- 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.