rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWEnhancedXmlObjectInputStreamImp Class Reference
[XML Streams]

Reads objects encoded in XML from the supplied RWDataInputStream. More...

#include <rw/xmlstreams/RWEnhancedXmlObjectInputStreamImp.h>

Inheritance diagram for RWEnhancedXmlObjectInputStreamImp:
RWObjectInputStreamImp RWXmlObjectStreamCommon RWFilteredDataInputStreamImp RWDataInputStreamImp RWInputStreamImp RWStreamImp RWBodyBase RWTCountingBody< RWMutexLock > RWTMonitor< RWMutexLock >

List of all members.

Public Member Functions

void getSymbol (RWSymbol &value)
virtual RWSymbol startBlock ()
virtual void endBlock ()
virtual void * getNewObject (const std::type_info *base)
virtual RWSymbol readTypeInfo ()
virtual void rememberObject (const void *obj)
virtual bool startMember (RWSymbol &memberName, RWStreamType &memberType)
virtual void endMember ()
virtual RWSymbol startSequence (int &count, RWStreamType &elementType)
virtual void startElement (int &position)
virtual void endElement ()
virtual void endSequence ()
virtual RWSymbol startMap (int &count, RWStreamType &keyType, RWStreamType &valueType)
virtual void startAssocKey ()
virtual void startAssocValue ()
virtual void endAssoc ()
virtual void endMap ()
virtual void getString (RWCString &str)
virtual void getWString (RWWString &str)
virtual void getUString (RWBasicUString &str)
virtual void getBool (bool &value)
virtual void getChar (char &value)
virtual void getUnsignedChar (unsigned char &value)
virtual void getSignedChar (signed char &value)
virtual void getShort (short &value)
virtual void getUnsignedShort (unsigned short &value)
virtual void getInt (int &value)
virtual void getUnsignedInt (unsigned int &value)
virtual void getLong (long &value)
virtual void getUnsignedLong (unsigned long &value)
virtual void getFloat (float &value)
virtual void getDouble (double &value)
virtual void getWchar_t (wchar_t &value)
virtual void getLongLong (long long &value)
virtual void getUnsignedLongLong (unsigned long long &value)
virtual void getLongDouble (long double &value)
virtual void getCharacter (char &value)
virtual void getWCharacter (wchar_t &value)
virtual void getUCharacter (RWUChar &value)
virtual void getSizeT (size_t &value)

Static Public Member Functions

static RWObjectInputStream make (std::istream &source, bool escape=true)
static RWObjectInputStream make (std::istream &source, std::ios *&formatter, bool escape=true)
static RWObjectInputStream make (RWDataInputStream &source, bool escape=true)

Protected Member Functions

virtual void openOuterContext (bool readContext)
virtual void closeOuterContext (bool readContext)
 RWEnhancedXmlObjectInputStreamImp (std::istream &sourceStream, bool escape)
 RWEnhancedXmlObjectInputStreamImp (std::istream &sourceStream, std::ios *&formatter, bool escape)
 RWEnhancedXmlObjectInputStreamImp (const RWDataInputStream &sourceStream, bool escape)
 ~RWEnhancedXmlObjectInputStreamImp ()
virtual RWSize getString (char *string, RWSize count)
virtual RWSize getWString (wchar_t *wstring, RWSize count)
virtual RWSize getUString (RWUChar *ustring, RWSize count)

Detailed Description

The class RWEnhancedXmlObjectInputStreamImp reads objects encoded in XML from the supplied RWDataInputStream.

Implements the body idiom from the handle/body pattern.

Examples

 // Open an fstream to serve as our source
 ifstream s("foo.xml");
 
 // Create an XML data stream using the fstream
 RWObjectInputStream in = 
               RWEnhancedXmlObjectInputStreamImp::make(s);
 
 // Read integer from XML data stream
 int i;
 s >> i;

Constructor & Destructor Documentation

RWEnhancedXmlObjectInputStreamImp::RWEnhancedXmlObjectInputStreamImp ( std::istream &  sourceStream,
bool  escape 
) [inline, protected]

Used by derived classes to initialize the previous processing stream. Throws no exceptions.

The parameter sourceStream is a handle to the previous processing stream.

RWEnhancedXmlObjectInputStreamImp::RWEnhancedXmlObjectInputStreamImp ( std::istream &  sourceStream,
std::ios *&  formatter,
bool  escape 
) [inline, protected]

Used by derived classes to initialize the previous processing stream. Throws no exceptions.

The parameter sourceStream is a handle to the previous processing stream

The parameter formatter will be returned with a reference to the formatting object

RWEnhancedXmlObjectInputStreamImp::RWEnhancedXmlObjectInputStreamImp ( const RWDataInputStream sourceStream,
bool  escape 
) [inline, protected]

Used by derived classes to initialize the previous processing stream. Throws no exceptions.

The parameter sourceStream is a handle to the previous processing stream.

RWEnhancedXmlObjectInputStreamImp::~RWEnhancedXmlObjectInputStreamImp (  )  [inline, protected]

Destructor. Make sure the storeTable is deleted even if an exception is thrown.


Member Function Documentation

virtual void RWEnhancedXmlObjectInputStreamImp::closeOuterContext ( bool  readContext  )  [protected, virtual]

Really closes an open context, called when closeContext() calls match the number of openContext() calls.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endAssoc (  )  [virtual]

Called by the input operators for association types after each value.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endBlock (  )  [virtual]

Causes tokens to be input that identify the end of an object.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endElement (  )  [virtual]

Called by the input operators for collection types after each element in a sequence.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endMap (  )  [virtual]

Called by the input operators for association types after all the pairs.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endMember (  )  [virtual]

Called by streamContents() after each data member is read.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::endSequence (  )  [virtual]

Called by the input operators for collection types at the end of a sequence.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getBool ( bool &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getChar ( char &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getCharacter ( char &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getDouble ( double &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getFloat ( float &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getInt ( int &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getLong ( long &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getLongDouble ( long double &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getLongLong ( long long &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void* RWEnhancedXmlObjectInputStreamImp::getNewObject ( const std::type_info *  base  )  [virtual]

Reads the dynamic type information (derived class) from the input stream, and factories an instance of this type.

Parameters:
base Represents the static type (base class) of the field being read.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getShort ( short &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getSignedChar ( signed char &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getSizeT ( size_t &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual RWSize RWEnhancedXmlObjectInputStreamImp::getString ( char *  string,
RWSize  count 
) [inline, protected, virtual]

Forward the reading of a string of narrow characters from the attached source stream. The function returns the number of narrow characters read.

Parameters:
string A pointer to the first element of the string. The string must have been pre-allocated to contain at least count narrow characters.
count The number of narrow character(s) to be read from the stream.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getString ( RWCString str  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Implements RWObjectInputStreamImp.

void RWEnhancedXmlObjectInputStreamImp::getSymbol ( RWSymbol value  )  [virtual]

Reads an RWSymbol value from the stream.

Parameters:
value The RWSymbol value to be read from the stream

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUCharacter ( RWUChar value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUnsignedChar ( unsigned char &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUnsignedInt ( unsigned int &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUnsignedLong ( unsigned long &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUnsignedLongLong ( unsigned long long &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUnsignedShort ( unsigned short &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual RWSize RWEnhancedXmlObjectInputStreamImp::getUString ( RWUChar ustring,
RWSize  count 
) [inline, protected, virtual]

Forward the reading of a string of UTF-16 characters from the attached source stream. The function returns the number of UTF-16 characters read.

Parameters:
ustring A pointer to the first element of the string. The string must have been pre-allocated to contain at least count unicode characters.
count The number of unicode character(s) to be read from the stream.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getUString ( RWBasicUString str  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getWchar_t ( wchar_t &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getWCharacter ( wchar_t &  value  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Reimplemented from RWFilteredDataInputStreamImp.

virtual RWSize RWEnhancedXmlObjectInputStreamImp::getWString ( wchar_t *  wstring,
RWSize  count 
) [inline, protected, virtual]

Forward the reading of a string of wide characters from the attached source stream. The function returns the number of wide characters read.

Parameters:
wstring A pointer to the first element of the string. The string must have been pre-allocated to contain at least count wide characters.
count The number of wide character(s) to be read from the stream.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::getWString ( RWWString str  )  [virtual]

Reads a value from the stream, where the type of the value is defined by the first parameter.

Implements RWObjectInputStreamImp.

static RWObjectInputStream RWEnhancedXmlObjectInputStreamImp::make ( RWDataInputStream source,
bool  escape = true 
) [static]

Constructs an RWEnhancedXmlObjectInputStreamImp instance that uses source as its source of bytes, and returns a handle to it. Throws no exceptions.

The parameter source is the data stream that is used as the source of bytes.

static RWObjectInputStream RWEnhancedXmlObjectInputStreamImp::make ( std::istream &  source,
std::ios *&  formatter,
bool  escape = true 
) [static]

Used by derived classes to initialize the previous processing stream. Constructs an RWEnhancedXMLObjectInputStreamImp instance that uses the data stream source as its source of bytes, and returns a handle to it. Throws no exceptions.

Use this method when the data input stream is a standard library std::istream.

The parameter source is the istream that is used as the source of bytes.

The parameter escape sets whether the input stream contains escapes for XML reserved characters that need to be unescaped. Escape is set to true if the objects serialized out with RWXmlObjectOutputStreamImp contained embedded XML. Defaults to true.

The reserved characters are:

 <  >  &  "  '
You get slightly better performance if the escape parameter is set to false, but before doing so be certain that your data does not contain reserved characters.

This function also takes a pointer reference to an std::ios formatting object. An empty formatting object pointer is created before the XML stream is created and is passed through this make() function to the constructor:

 std::ios* formatter;            // uninitialized pointer
 RWObjectInputStream xistr =
 RWEnhancedXMLObjectInputStreamImp::make(infile,formatter);

The constructor, in creating the underlying character stream for the XML stream, creates a formatting object for the stream and places the address of that object in the pointer reference. The calling application can then use this formatting object to manipulate data formats in the XML stream.

 formatter->precision(15);       // manipulate data format

The parameter source is the istream that is used as the source of bytes.

The parameter formatter will be returned with a reference to the formatting object.

static RWObjectInputStream RWEnhancedXmlObjectInputStreamImp::make ( std::istream &  source,
bool  escape = true 
) [static]

Used by derived classes to initialize the previous processing stream. Constructs an RWEnhancedXMLObjectInputStreamImp instance that uses the data stream source as its source of bytes, and returns a handle to it. Throws no exceptions.

Use this method when the data input stream is a standard library std::istream.

The parameter source is the istream that is used as the source of bytes.

The parameter escape sets whether the input stream contains escapes for XML reserved characters that need to be unescaped. Escape is set to true if the objects serialized out with RWXmlObjectOutputStreamImp contained embedded XML. Defaults to true.

The reserved characters are:

 <  >  &  "  '

You get slightly better performance if the escape parameter is set to false, but before doing so be certain that your data does not contain reserved characters.

virtual void RWEnhancedXmlObjectInputStreamImp::openOuterContext ( bool  readContext  )  [protected, virtual]

Really opens a new context, called by openContext() when a context is not already open.

Implements RWObjectInputStreamImp.

virtual RWSymbol RWEnhancedXmlObjectInputStreamImp::readTypeInfo (  )  [virtual]

Reads the type information for an class instance from the stream and returns it as a symbol.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::rememberObject ( const void *  obj  )  [virtual]

Called by streaming operators to record each instance streamed in, in case it is referenced again in the same context.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::startAssocKey (  )  [virtual]

Called by the input operators for association types before each key.

Reimplemented from RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::startAssocValue (  )  [virtual]

Called by the input operators for association types after each key and before each value.

Reimplemented from RWObjectInputStreamImp.

virtual RWSymbol RWEnhancedXmlObjectInputStreamImp::startBlock (  )  [virtual]

Causes tokens to be input that identify the start of a new object. Returns an RWSymbol representing the new object. Depending on the implementation class associated with this handle the RWSymbol may be empty.

Implements RWObjectInputStreamImp.

virtual void RWEnhancedXmlObjectInputStreamImp::startElement ( int &   )  [virtual]

Called by the input operators for collection types before each element in a sequence.

Reimplemented from RWObjectInputStreamImp.

virtual RWSymbol RWEnhancedXmlObjectInputStreamImp::startMap ( int &  count,
RWStreamType keyType,
RWStreamType valueType 
) [virtual]

Called by the input operators for association types (hash tables, etc.) at the start. Returns an RWSymbol representing the collection.

Parameters:
count Contains the number of items in the association.
keyType Contains the type of key in the association.
valueType Contains the type of value in the association.

Implements RWObjectInputStreamImp.

virtual bool RWEnhancedXmlObjectInputStreamImp::startMember ( RWSymbol memberName,
RWStreamType memberType 
) [virtual]

Called for before each data member by the streamContents() function, metadata about the field may or may not be read from the stream depending on the implementation. If data is read (returning true), then parameter memberName will contain the name of the member. Otherwise returns false.

Implements RWObjectInputStreamImp.

virtual RWSymbol RWEnhancedXmlObjectInputStreamImp::startSequence ( int &  count,
RWStreamType elementType 
) [virtual]

Called by the input operators for collection types at the start of a sequence. Returns an RWSymbol representing the collection.

Parameters:
count Contains the number of items in the collection.
elementType Contains the type of element in the collection.

Implements RWObjectInputStreamImp.

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.