#include <CDR_Base.h>
Public Types | |
| enum | { OCTET_SIZE = 1, SHORT_SIZE = 2, LONG_SIZE = 4, LONGLONG_SIZE = 8, LONGDOUBLE_SIZE = 16, OCTET_ALIGN = 1, SHORT_ALIGN = 2, LONG_ALIGN = 4, LONGLONG_ALIGN = 8, LONGDOUBLE_ALIGN = 8, MAX_ALIGNMENT = 8, DEFAULT_BUFSIZE = ACE_DEFAULT_CDR_BUFSIZE, EXP_GROWTH_MAX = ACE_DEFAULT_CDR_EXP_GROWTH_MAX, LINEAR_GROWTH_CHUNK = ACE_DEFAULT_CDR_LINEAR_GROWTH_CHUNK } |
Basic OMG IDL Types | |
These types are for use in the CDR classes. The cleanest way to avoid complaints from all compilers is to define them all. | |
| typedef ACE::If_Then_Else< (sizeof(bool)==1), bool, unsigned char >::result_typ | Boolean ) |
| typedef unsigned char | Octet |
| typedef char | Char |
| typedef ACE_WCHAR_T | WChar |
| typedef ACE_INT16 | Short |
| typedef ACE_UINT16 | UShort |
| typedef ACE_INT32 | Long |
| typedef ACE_UINT32 | ULong |
| typedef ACE_UINT64 | ULongLong |
| typedef long long | LongLong |
Static Public Member Functions | |
| void | swap_2 (const char *orig, char *target) |
| void | swap_4 (const char *orig, char *target) |
| void | swap_8 (const char *orig, char *target) |
| void | swap_16 (const char *orig, char *target) |
| void | swap_2_array (const char *orig, char *target, size_t length) |
| void | swap_4_array (const char *orig, char *target, size_t length) |
| void | swap_8_array (const char *orig, char *target, size_t length) |
| void | swap_16_array (const char *orig, char *target, size_t length) |
| void | mb_align (ACE_Message_Block *mb) |
| size_t | first_size (size_t minsize) |
| size_t | next_size (size_t minsize) |
| int | grow (ACE_Message_Block *mb, size_t minsize) |
| void | consolidate (ACE_Message_Block *dst, const ACE_Message_Block *src) |
| size_t | total_length (const ACE_Message_Block *begin, const ACE_Message_Block *end) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Copy a message block chain into a single message block, preserving the alignment of the first message block of the original stream, not the following message blocks. |
|
|
Compute the size of the smallest buffer that can contain at least minsize bytes. To understand how a "best fit" is computed look at the algorithm in the code. Basically the buffers grow exponentially, up to a certain point, then the buffer size grows linearly. The advantage of this algorithm is that is rapidly grows to a large value, but does not explode at the end. |
|
||||||||||||
|
Increase the capacity of mb to contain at least minsize bytes. If minsize is zero the size is increased by an amount at least large enough to contain any of the basic IDL types.
|
|
|
Align the message block to ACE_CDR::MAX_ALIGNMENT, set by the CORBA spec at 8 bytes. |
|
|
Compute not the smallest, but the second smallest buffer that will fir minsize bytes. |
|
||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||
|
Do byte swapping for each basic IDL type size. There exist only routines to put byte, halfword (2 bytes), word (4 bytes), doubleword (8 bytes) and quadword (16 byte); because those are the IDL basic type sizes. |
|
||||||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||
|
|
1.3.9.1