A CDR stream for marshalling data, most often for transmission to another system which may or may not have the same byte order.
More...
Classes |
struct | from_boolean |
struct | from_char |
struct | from_octet |
struct | from_string |
struct | from_wchar |
struct | from_wstring |
Public Member Functions |
| ACE_OutputCDR (size_t size=0, int byte_order=ACE_CDR::BYTE_ORDER_NATIVE, 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) |
| ACE_OutputCDR (char *data, size_t size, int byte_order=ACE_CDR::BYTE_ORDER_NATIVE, 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) |
| ACE_OutputCDR (ACE_Data_Block *data_block, int byte_order=ACE_CDR::BYTE_ORDER_NATIVE, 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) |
| ACE_OutputCDR (ACE_Message_Block *data, int byte_order=ACE_CDR::BYTE_ORDER_NATIVE, 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) |
| ~ACE_OutputCDR (void) |
| destructor
|
bool | good_bit (void) const |
| Returns false if an error has ocurred.
|
void | reset (void) |
| Reuse the CDR stream to write on the old buffer.
|
size_t | total_length (void) const |
| Add the length of each message block in the chain.
|
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.
|
const ACE_Message_Block * | current (void) const |
| Return the <current_> message block in chain.
|
int | consolidate (void) |
| Replace the message block chain with a single message block.
|
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 null!
|
ACE_WChar_Codeset_Translator * | wchar_translator (void) const |
void | char_translator (ACE_Char_Codeset_Translator *) |
| Set the char codeset translator.
|
void | wchar_translator (ACE_WChar_Codeset_Translator *) |
| Set the wchar codeset translator.
|
size_t | current_alignment (void) const |
void | current_alignment (size_t current_alignment) |
int | adjust (size_t size, char *&buf) |
int | adjust (size_t size, size_t align, char *&buf) |
bool | do_byte_swap (void) const |
int | byte_order (void) const |
void | reset_byte_order (int byte_order) |
void | set_version (ACE_CDR::Octet major, ACE_CDR::Octet minor) |
| set GIOP version info
|
void | get_version (ACE_CDR::Octet &major, ACE_CDR::Octet &minor) |
| Set the underlying GIOP version..
|
|
Return 0 on failure and 1 on success.
|
ACE_CDR::Boolean | write_boolean (ACE_CDR::Boolean x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_char (ACE_CDR::Char x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_wchar (ACE_CDR::WChar x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_octet (ACE_CDR::Octet x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_short (ACE_CDR::Short x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_ushort (ACE_CDR::UShort x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_long (ACE_CDR::Long x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_ulong (ACE_CDR::ULong x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_longlong (const ACE_CDR::LongLong &x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_ulonglong (const ACE_CDR::ULongLong &x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_float (ACE_CDR::Float x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_double (const ACE_CDR::Double &x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_longdouble (const ACE_CDR::LongDouble &x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_string (const ACE_CDR::Char *x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_string (ACE_CDR::ULong len, const ACE_CDR::Char *x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_string (const ACE_CString &x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_wstring (const ACE_CDR::WChar *x) |
| For string we offer methods that accept a precomputed length.
|
ACE_CDR::Boolean | write_wstring (ACE_CDR::ULong length, const ACE_CDR::WChar *x) |
| For string we offer methods that accept a precomputed length.
|
|
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) |
|
Facilitates writing a placeholder into a CDR stream to be replaced later with a different value.
- Note:
- An example use for this facility is:
|
char * | write_long_placeholder (void) |
char * | write_short_placeholder (void) |
ACE_CDR::Boolean | replace (ACE_CDR::Long x, char *loc) |
ACE_CDR::Boolean | replace (ACE_CDR::Short x, char *loc) |
|
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 &) |
Static Public Member Functions |
static void | wchar_maxbytes (size_t max_bytes) |
static size_t | wchar_maxbytes (void) |
| access the serialized size of wchars.
|
Protected Attributes |
ACE_CDR::Octet | major_version_ |
| GIOP version information.
|
ACE_CDR::Octet | minor_version_ |
ACE_Char_Codeset_Translator * | char_translator_ |
| If not nil, invoke for translation of character and string data.
|
ACE_WChar_Codeset_Translator * | wchar_translator_ |
Static Protected Attributes |
static size_t | wchar_maxbytes_ = sizeof (ACE_CDR::WChar) |
Private Member Functions |
ACE_Message_Block * | find (char *loc) |
| ACE_OutputCDR (const ACE_OutputCDR &rhs) |
| disallow copying...
|
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) |
ACE_CDR::Boolean | write_wchar_array_i (const ACE_CDR::WChar *x, 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.
|
ACE_Message_Block * | current_ |
| The current block in the chain where we are writing.
|
size_t | current_alignment_ |
bool | current_is_writable_ |
bool | do_byte_swap_ |
bool | good_bit_ |
| Set to false when an error ocurrs.
|
size_t const | memcpy_tradeoff_ |
| Break-even point for copying.
|
Friends |
class | ACE_Char_Codeset_Translator |
class | ACE_WChar_Codeset_Translator |
class | ACE_InputCDR |
A CDR stream for marshalling data, most often for transmission to another system which may or may not have the same byte order.
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).