# ACE_SizeCDR Class Reference

A CDR stream for calculating size of the representation. More...

`#include <CDR_Size.h>`

List of all members.

## Array write operations

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)
void | adjust (size_t size)
void | adjust (size_t size, size_t align)
ACE_CDR::Octet | major_version_
| GIOP version information.
ACE_CDR::Octet | minor_version_
| ACE_SizeCDR (const ACE_SizeCDR &rhs)
| disallow copying...
ACE_SizeCDR & | operator= (const ACE_SizeCDR &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)
bool | good_bit_
| Set to false when an error ocurrs.
size_t | size_
| Current size.

## Public Member Functions

| ACE_SizeCDR (ACE_CDR::Octet major_version=ACE_CDR_GIOP_MAJOR_VERSION, ACE_CDR::Octet minor_version=ACE_CDR_GIOP_MINOR_VERSION)
| Default constructor.
bool | good_bit (void) const
| Returns `false` if an error has ocurred.
void | reset (void)
| Reset current size.
size_t | total_length (void) const
| Return current size.
Size-calculating pseudo-write operations
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.
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)

## Detailed Description

A CDR stream for calculating size of the representation.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SizeCDR::ACE_SizeCDR | ( | ACE_CDR::Octet | major_version = `ACE_CDR_GIOP_MAJOR_VERSION`,
|  | ACE_CDR::Octet | minor_version = `ACE_CDR_GIOP_MINOR_VERSION`
| ) |

| Default constructor.

ACE_SizeCDR::ACE_SizeCDR | ( | const ACE_SizeCDR & | rhs | ) | `[private]`

| disallow copying...

## Member Function Documentation

void ACE_SizeCDR::adjust | ( | size_t | size,
|  | size_t | align
| ) |

| As above, but now the size and alignment requirements may be different.

void ACE_SizeCDR::adjust | ( | size_t | size | ) |

| Adjust to <size> and count <size> octets.

ACE_INLINE bool ACE_SizeCDR::good_bit | ( | void |  | ) | const

| Returns `false` if an error has ocurred.

ACE_SizeCDR& ACE_SizeCDR::operator= | ( | const ACE_SizeCDR & | rhs | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE void ACE_SizeCDR::reset | ( | void |  | ) |

| Reset current size.

ACE_INLINE size_t ACE_SizeCDR::total_length | ( | void |  | ) | const

| Return current size.

ACE_CDR::Boolean ACE_SizeCDR::write_1 | ( | const ACE_CDR::Octet * | x | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_16 | ( | const ACE_CDR::LongDouble * | x | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_2 | ( | const ACE_CDR::UShort * | x | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_4 | ( | const ACE_CDR::ULong * | x | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_8 | ( | const ACE_CDR::ULongLong * | x | ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_array | ( | const void * | x,
|  | size_t | size,
|  | size_t | align,
|  | ACE_CDR::ULong | length
| ) | `[private]`

write an array of <length> elements, each of <size> bytes and the start aligned at a multiple of <align>. The elements are assumed to be packed with the right alignment restrictions. It is mostly designed for buffers of the basic types.

This operation uses <memcpy>; as explained above it is expected that using assignment is faster that <memcpy> for one element, but for several elements <memcpy> should be more efficient, it could be interesting to find the break even point and optimize for that case, but that would be too platform dependent.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_boolean | ( | ACE_CDR::Boolean | x | ) |

ACE_CDR::Boolean ACE_SizeCDR::write_boolean_array | ( | const ACE_CDR::Boolean * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_char | ( | ACE_CDR::Char | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_char_array | ( | const ACE_CDR::Char * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_double | ( | const ACE_CDR::Double & | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_double_array | ( | const ACE_CDR::Double * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_float | ( | ACE_CDR::Float | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_float_array | ( | const ACE_CDR::Float * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_long | ( | ACE_CDR::Long | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_long_array | ( | const ACE_CDR::Long * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_longdouble | ( | const ACE_CDR::LongDouble & | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_longdouble_array | ( | const ACE_CDR::LongDouble * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_longlong | ( | const ACE_CDR::LongLong & | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_longlong_array | ( | const ACE_CDR::LongLong * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_octet | ( | ACE_CDR::Octet | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_octet_array | ( | const ACE_CDR::Octet * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_short | ( | ACE_CDR::Short | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_short_array | ( | const ACE_CDR::Short * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_string | ( | const ACE_CString & | x | ) |

ACE_CDR::Boolean ACE_SizeCDR::write_string | ( | ACE_CDR::ULong | len,
|  | const ACE_CDR::Char * | x
| ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_string | ( | const ACE_CDR::Char * | x | ) |

| For string we offer methods that accept a precomputed length.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ulong | ( | ACE_CDR::ULong | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ulong_array | ( | const ACE_CDR::ULong * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ulonglong | ( | const ACE_CDR::ULongLong & | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ulonglong_array | ( | const ACE_CDR::ULongLong * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ushort | ( | ACE_CDR::UShort | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_ushort_array | ( | const ACE_CDR::UShort * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_CDR::Boolean ACE_SizeCDR::write_wchar | ( | ACE_CDR::WChar | x | ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_wchar_array | ( | const ACE_CDR::WChar * | x,
|  | ACE_CDR::ULong | length
| ) |

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_wchar_array_i | ( | const ACE_CDR::WChar * | x,
|  | ACE_CDR::ULong | length
| ) | `[private]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

ACE_CDR::Boolean ACE_SizeCDR::write_wstring | ( | ACE_CDR::ULong | length,
|  | const ACE_CDR::WChar * | x
| ) |

ACE_INLINE ACE_CDR::Boolean ACE_SizeCDR::write_wstring | ( | const ACE_CDR::WChar * | x | ) |

## Member Data Documentation

bool ACE_SizeCDR::good_bit_ `[private]`

| Set to false when an error ocurrs.

ACE_CDR::Octet ACE_SizeCDR::major_version_ `[protected]`

| GIOP version information.

ACE_CDR::Octet ACE_SizeCDR::minor_version_ `[protected]`

Note:
  the portion written starts at <x> and ends at <x + length>. The length is *NOT* stored into the CDR stream.

size_t ACE_SizeCDR::size_ `[private]`

| Current size.

The documentation for this class was generated from the following files:

- CDR_Size.h
- CDR_Size.cpp
- CDR_Size.inl