TAO  2.3.3
Classes
CDR.h File Reference
#include "tao/orbconf.h"
#include "tao/Basic_Types.h"
#include "tao/GIOP_Message_Version.h"
#include "tao/Message_Semantics.h"
#include "tao/Intrusive_Ref_Count_Handle_T.h"
#include "tao/Intrusive_Ref_Count_Object_T.h"
#include "ace/CDR_Stream.h"
#include "ace/SString.h"
#include "ace/Hash_Map_Manager_T.h"
#include "ace/Null_Mutex.h"
#include <string>
#include "tao/CDR.inl"

Classes

class  TAO_OutputCDR
 A CDR stream for writing, i.e. for marshalling. More...
 
class  TAO_InputCDR
 A CDR stream for reading, i.e. for demarshalling. More...
 
struct  TAO_InputCDR::to_std_string
 Helper classes for extracting bounded strings into std::string/wstring. More...
 
struct  TAO_InputCDR::to_std_wstring
 

Detailed Description

Common Data Representation (CDR) marshaling streams.

This implementation assumes that the native numeric representation is two's complement for integers, IEEE single/double for floats. Also that characters are in ISO Latin/1.

Note that CDR itself makes no such assumptions, but this implementation makes such assumptions for reasons of efficiency. Careful enhancements could preserve that efficiency where the assumptions are true, yet still allow the code to work when they aren't true.

The implementation expects that buffers are aligned according to the strongest CDR alignment restriction.

Note
This does everything "CDR 1.1" does ... that is, it supports the five extended OMG-IDL data types in UNO Appendix A, which provide richer arithmetic types (64 bit integers, "quad precision" FP) and UNICODE-based characters and strings. Those types are not standard parts of OMG-IDL at this time.

THREADING NOTE: CDR data structures must be protected against concurrent access by their owning thread.

Author
Copyright 1994-1995 by Sun Microsystems Inc.
Aniruddha Gokhale
Carlos O'Ryan