TAO_OutputCDR Class ReferenceA CDR stream for writing, i.e. for marshalling.
More...
#include <CDR.h>
List of all members.
|
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) |
|
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_Transport::TAO_Message_Semantics message_semantics, ACE_Time_Value *timeout, bool compressed) |
| 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_Transport::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 |
|
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_Transport::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.
|
Detailed Description
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.
Constructor & Destructor Documentation
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_OutputCDR::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 | |
|
) |
| | |
Default constructor, allocates <size> bytes in the internal buffer, if <size> == 0 it allocates the default size.
TAO_OutputCDR::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 | |
|
) |
| | |
Build a CDR stream with an initial buffer, it will *not* remove <data>, since it did not allocated it.
Build a CDR stream with an initial buffer, it will *not* remove data since it did not allocated it, and enable fragmentation support.
Build a CDR stream with an initial Message_Block chain, it will *not* remove <data>, since it did not allocate it.
Build a CDR stream with an initial data block, it will *not* remove <data_block>, since it did not allocated it.
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_OutputCDR::~TAO_OutputCDR |
( |
void |
|
) |
|
TAO_OutputCDR::TAO_OutputCDR |
( |
const TAO_OutputCDR & |
rhs |
) |
[private] |
Member Function Documentation
void TAO_OutputCDR::throw_stub_exception |
( |
int |
error_num |
) |
[static] |
void TAO_OutputCDR::throw_skel_exception |
( |
int |
error_num |
) |
[static] |
Fragment this output CDR stream if necessary.
Fragmentation will done through GIOP fragments when the length of the CDR stream length will exceed the configured threshold.
ACE_INLINE bool TAO_OutputCDR::more_fragments |
( |
void |
|
) |
const |
Are there more data fragments to come?
ACE_INLINE void TAO_OutputCDR::more_fragments |
( |
bool |
more |
) |
|
Specify whether there are more data fragments to come.
Set fragmented message attributes.
ACE_INLINE CORBA::ULong TAO_OutputCDR::request_id |
( |
void |
|
) |
const |
Fragmented message request ID.
ACE_INLINE TAO_Stub * TAO_OutputCDR::stub |
( |
void |
|
) |
const |
Stub object associated with the request.
Message semantics (twoway, oneway, reply).
Maximum time to wait for outgoing message to be sent.
Friends And Related Function Documentation
For reading from a output CDR stream.
Member Data Documentation
Strategy that sends data currently marshaled into this TAO_OutputCDR stream if necessary.
Are there more data fragments to come?
Request ID for the request currently being marshaled.
Stub object associated with the request.
Request/reply send timeout.
The documentation for this class was generated from the following files:
Generated on Mon Sep 15 07:41:51 2008 for TAO by
1.5.5
|