Public Methods |
| ACE_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=ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, ACE_CDR::Octet major_version=ACE_CDR_GIOP_MAJOR_VERSION, ACE_CDR::Octet minor_version=ACE_CDR_GIOP_MINOR_VERSION) |
| Default constructor, allocates <size> bytes in the internal buffer, if <size> == 0 it allocates the default size. More...
|
| ACE_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=ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, ACE_CDR::Octet giop_major_version=ACE_CDR_GIOP_MAJOR_VERSION, ACE_CDR::Octet giop_minor_version=ACE_CDR_GIOP_MINOR_VERSION) |
| Build a CDR stream with an initial buffer, it will *not* remove <data>, since it did not allocated it. It's important to be careful with the alignment of <data>. More...
|
| ACE_OutputCDR (ACE_Message_Block *data, int byte_order=ACE_CDR_BYTE_ORDER, size_t memcpy_tradeoff=ACE_DEFAULT_CDR_MEMCPY_TRADEOFF, ACE_CDR::Octet giop_major_version=ACE_CDR_GIOP_MAJOR_VERSION, ACE_CDR::Octet giop_minor_version=ACE_CDR_GIOP_MINOR_VERSION) |
| Build a CDR stream with an initial Message_Block chain, it will *not* remove <data>, since it did not allocate it. More...
|
| ~ACE_OutputCDR (void) |
| destructor. More...
|
int | good_bit (void) const |
| Returns 0 if an error has ocurred, the only expected error is to run out of memory. More...
|
void | reset (void) |
| Reuse the CDR stream to write on the old buffer. More...
|
size_t | total_length (void) const |
| Add the length of each message block in the chain. More...
|
const ACE_Message_Block * | begin (void) const |
const ACE_Message_Block * | end (void) const |
| Return the last message in the chain that is is use. More...
|
const ACE_Message_Block * | current (void) const |
| Return the <current_> message block in chain. More...
|
const char * | buffer (void) const |
size_t | length (void) const |
int | align_write_ptr (size_t alignment) |
ACE_Char_Codeset_Translator * | char_translator (void) const |
| Access the codeset translators. They can be nil! More...
|
ACE_WChar_Codeset_Translator * | wchar_translator (void) const |
size_t | current_alignment (void) const |
int | adjust (size_t size, char *&buf) |
int | adjust (size_t size, size_t align, char *&buf) |
| As above, but now the size and alignment requirements may be different. More...
|
int | do_byte_swap (void) const |
| If non-zero then this stream is writing in non-native byte order, this is only meaningful if ACE_ENABLE_SWAP_ON_WRITE is defined. More...
|
void | reset_byte_order (int byte_order) |
| For use by a gateway, which creates the output stream for the reply to the client in its native byte order, but which must send the reply in the byte order of the target's reply to the gateway. More...
|
int | set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor) |
| set GIOP version info. More...
|
|
ACE_CDR::Boolean | write_boolean (ACE_CDR::Boolean x) |
ACE_CDR::Boolean | write_char (ACE_CDR::Char x) |
ACE_CDR::Boolean | write_wchar (ACE_CDR::WChar x) |
ACE_CDR::Boolean | write_octet (ACE_CDR::Octet x) |
ACE_CDR::Boolean | write_short (ACE_CDR::Short x) |
ACE_CDR::Boolean | write_ushort (ACE_CDR::UShort x) |
ACE_CDR::Boolean | write_long (ACE_CDR::Long x) |
ACE_CDR::Boolean | write_ulong (ACE_CDR::ULong x) |
ACE_CDR::Boolean | write_longlong (const ACE_CDR::LongLong &x) |
ACE_CDR::Boolean | write_ulonglong (const ACE_CDR::ULongLong &x) |
ACE_CDR::Boolean | write_float (ACE_CDR::Float x) |
ACE_CDR::Boolean | write_double (const ACE_CDR::Double &x) |
ACE_CDR::Boolean | write_longdouble (const ACE_CDR::LongDouble &x) |
ACE_CDR::Boolean | write_string (const ACE_CDR::Char *x) |
| For string we offer methods that accept a precomputed length. More...
|
ACE_CDR::Boolean | write_string (ACE_CDR::ULong len, const ACE_CDR::Char *x) |
ACE_CDR::Boolean | write_string (const ACE_CString &x) |
ACE_CDR::Boolean | write_wstring (const ACE_CDR::WChar *x) |
ACE_CDR::Boolean | write_wstring (ACE_CDR::ULong length, const ACE_CDR::WChar *x) |
|
ACE_CDR::Boolean | write_boolean_array (const ACE_CDR::Boolean *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_char_array (const ACE_CDR::Char *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_wchar_array (const ACE_CDR::WChar *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_octet_array (const ACE_CDR::Octet *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_short_array (const ACE_CDR::Short *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_ushort_array (const ACE_CDR::UShort *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_long_array (const ACE_CDR::Long *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_ulong_array (const ACE_CDR::ULong *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_longlong_array (const ACE_CDR::LongLong *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_ulonglong_array (const ACE_CDR::ULongLong *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_float_array (const ACE_CDR::Float *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_double_array (const ACE_CDR::Double *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_longdouble_array (const ACE_CDR::LongDouble *x, ACE_CDR::ULong length) |
ACE_CDR::Boolean | write_octet_array_mb (const ACE_Message_Block *mb) |
| Write an octet array contained inside a MB, this can be optimized to minimize copies. More...
|
|
ACE_CDR::Boolean | append_boolean (ACE_InputCDR &) |
ACE_CDR::Boolean | append_char (ACE_InputCDR &) |
ACE_CDR::Boolean | append_wchar (ACE_InputCDR &) |
ACE_CDR::Boolean | append_octet (ACE_InputCDR &) |
ACE_CDR::Boolean | append_short (ACE_InputCDR &) |
ACE_CDR::Boolean | append_ushort (ACE_InputCDR &) |
ACE_CDR::Boolean | append_long (ACE_InputCDR &) |
ACE_CDR::Boolean | append_ulong (ACE_InputCDR &) |
ACE_CDR::Boolean | append_longlong (ACE_InputCDR &) |
ACE_CDR::Boolean | append_ulonglong (ACE_InputCDR &) |
ACE_CDR::Boolean | append_float (ACE_InputCDR &) |
ACE_CDR::Boolean | append_double (ACE_InputCDR &) |
ACE_CDR::Boolean | append_longdouble (ACE_InputCDR &) |
ACE_CDR::Boolean | append_wstring (ACE_InputCDR &) |
ACE_CDR::Boolean | append_string (ACE_InputCDR &) |
Protected Attributes |
ACE_Char_Codeset_Translator * | char_translator_ |
| If not nil, invoke for translation of character and string data. More...
|
ACE_WChar_Codeset_Translator * | wchar_translator_ |
Private Methods |
| ACE_OutputCDR (const ACE_OutputCDR &rhs) |
| disallow copying... More...
|
ACE_OutputCDR & | operator= (const ACE_OutputCDR &rhs) |
ACE_CDR::Boolean | write_1 (const ACE_CDR::Octet *x) |
ACE_CDR::Boolean | write_2 (const ACE_CDR::UShort *x) |
ACE_CDR::Boolean | write_4 (const ACE_CDR::ULong *x) |
ACE_CDR::Boolean | write_8 (const ACE_CDR::ULongLong *x) |
ACE_CDR::Boolean | write_16 (const ACE_CDR::LongDouble *x) |
ACE_CDR::Boolean | write_array (const void *x, size_t size, size_t align, ACE_CDR::ULong length) |
int | grow_and_adjust (size_t size, size_t align, char *&buf) |
Private Attributes |
ACE_Message_Block | start_ |
| The start of the chain of message blocks. More...
|
ACE_Message_Block * | current_ |
| The current block in the chain were we are writing. More...
|
int | current_is_writable_ |
size_t | current_alignment_ |
int | do_byte_swap_ |
int | good_bit_ |
| Set to 0 when an error ocurrs. More...
|
size_t | memcpy_tradeoff_ |
| Break-even point for copying. More...
|
ACE_CDR::Octet | major_version_ |
| GIOP version information. More...
|
ACE_CDR::Octet | minor_version_ |
Friends |
class | ACE_Char_Codeset_Translator |
class | ACE_WChar_Codeset_Translator |
class | ACE_InputCDR |
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).