TAO
2.4.0
|
#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 |
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.
THREADING NOTE: CDR data structures must be protected against concurrent access by their owning thread.