SourcePro® API Reference Guide

Product Documentation:
   SourcePro
Documentation Home
List of all members | Static Public Member Functions | Protected Member Functions
RWTTransformObjectInputStreamImp< Transform > Class Template Reference

Constructs an XML input stream that applies a generic transformation to the XML document before reading it from the source. More...

#include <rw/xmlstreams/RWTTransformObjectInputStreamImp.h>

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

Static Public Member Functions

static RWObjectInputStream make (std::istream &source, Transform transformer, bool escape=true)
 
static RWObjectInputStream make (std::istream &source, Transform transformer, std::ios *&formatter, bool escape=true)
 
- Static Public Member Functions inherited from RWXmlObjectInputStreamImp
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)
 
- Static Public Member Functions inherited from RWXmlObjectStreamCommon
static const char * rwStreamToLocalStringType (RWStreamType stype)
 
static const char * rwStreamToStringType (RWStreamType stype)
 

Protected Member Functions

 RWTTransformObjectInputStreamImp (std::istream &istr, Transform transformer, bool escape)
 
 RWTTransformObjectInputStreamImp (std::istream &istr, Transform transformer, std::ios *&formatter, bool escape)
 
- Protected Member Functions inherited from RWXmlObjectInputStreamImp
 RWXmlObjectInputStreamImp (std::istream &sourceStream, bool escape)
 
 RWXmlObjectInputStreamImp (std::istream &sourceStream, std::ios *&formatter, bool escape)
 
 RWXmlObjectInputStreamImp (const RWDataInputStream &sourceStream, bool escape)
 
virtual void closeOuterContext (bool readContext)
 
virtual RWSize getString (char *string, RWSize count)
 
virtual RWSize getUString (RWUChar *ustring, RWSize count)
 
virtual RWSize getWString (wchar_t *wstring, RWSize count)
 
virtual void openOuterContext (bool readContext)
 
- Protected Member Functions inherited from RWObjectInputStreamImp
 RWObjectInputStreamImp (const RWDataInputStream &sourceStream)
 
- Protected Member Functions inherited from RWFilteredDataInputStreamImp
 RWFilteredDataInputStreamImp (const RWDataInputStream &sourceStream)
 
RWDataInputStreamgetSourceStream ()
 
const RWDataInputStreamgetSourceStream () const
 
- Protected Member Functions inherited from RWDataInputStreamImp
 RWDataInputStreamImp ()
 
- Protected Member Functions inherited from RWInputStreamImp
 RWInputStreamImp ()
 
- Protected Member Functions inherited from RWStreamImp
 RWStreamImp ()
 
- Protected Member Functions inherited from RWBodyBase
 RWBodyBase (void)
 
 RWBodyBase (RWStaticCtor)
 
 RWBodyBase (const RWBodyBase &second)
 
virtual ~RWBodyBase (void)
 
RWBodyBaseoperator= (const RWBodyBase &second)
 
- Protected Member Functions inherited from RWTCountingBody< RWMutexLock >
 RWTCountingBody (unsigned initCount=0)
 
 RWTCountingBody (RWStaticCtor)
 
 RWTCountingBody (const RWTCountingBody< RWMutexLock > &second)
 
RWTCountingBody< RWMutexLock > & operator= (const RWTCountingBody< RWMutexLock > &second)
 
 ~RWTCountingBody (void)
 
unsigned addReference (void)
 
unsigned references (void) const
 
unsigned removeReference (void)
 
- Protected Member Functions inherited from RWTMonitor< RWMutexLock >
 RWTMonitor ()
 
 RWTMonitor (RWStaticCtor)
 
 RWTMonitor (const RWTMonitor< RWMutexLock > &second)
 
 ~RWTMonitor ()
 
void acquire ()
 
bool isAcquired () const
 
RWTMonitor< RWMutexLock > & monitor () const
 
RWMutexLockmutex ()
 
RWTMonitor< RWMutexLock > & operator= (const RWTMonitor< RWMutexLock > &)
 
void release ()
 
bool tryAcquire ()
 

Additional Inherited Members

- Public Member Functions inherited from RWXmlObjectInputStreamImp
virtual void endAssoc ()
 
virtual void endBlock ()
 
virtual void endElement ()
 
virtual void endMap ()
 
virtual void endMember ()
 
virtual void endSequence ()
 
virtual void getBool (bool &value)
 
virtual void getChar (char &value)
 
virtual void getCharacter (char &value)
 
virtual void getDouble (double &value)
 
virtual void getFloat (float &value)
 
virtual void getInt (int &value)
 
virtual void getLong (long &value)
 
virtual void getLongDouble (long double &value)
 
virtual void getLongLong (long long &value)
 
virtual void * getNewObject (const std::type_info *base)
 
virtual void getShort (short &value)
 
virtual void getSignedChar (signed char &value)
 
virtual void getSizeT (size_t &value)
 
virtual void getString (RWCString &str)
 
void getSymbol (RWSymbol &value)
 
virtual void getUCharacter (RWUChar &value)
 
virtual void getUnsignedChar (unsigned char &value)
 
virtual void getUnsignedInt (unsigned int &value)
 
virtual void getUnsignedLong (unsigned long &value)
 
virtual void getUnsignedLongLong (unsigned long long &value)
 
virtual void getUnsignedShort (unsigned short &value)
 
virtual void getUString (RWBasicUString &str)
 
virtual void getWchar_t (wchar_t &value)
 
virtual void getWCharacter (wchar_t &value)
 
virtual void getWString (RWWString &str)
 
virtual RWSymbol readTypeInfo ()
 
virtual void rememberObject (const void *obj)
 
virtual void startAssocKey ()
 
virtual void startAssocValue ()
 
virtual RWSymbol startBlock ()
 
virtual void startElement (int &position)
 
virtual RWSymbol startMap (int &count, RWStreamType &keyType, RWStreamType &valueType)
 
virtual bool startMember (RWSymbol &memberName, RWStreamType &memberType)
 
virtual RWSymbol startSequence (int &count, RWStreamType &elementType)
 
- Public Member Functions inherited from RWObjectInputStreamImp
virtual void closeContext (bool readContext=true)
 
virtual void endParent ()
 
virtual void openContext (bool readContext=true)
 
virtual void peekChar (char &value)
 
virtual void peekCharacter (char &value)
 
virtual void startParent (const RWSymbol &)
 
- Public Member Functions inherited from RWFilteredDataInputStreamImp
virtual ~RWFilteredDataInputStreamImp ()
 
virtual RWSize available () const
 
virtual void close ()
 
virtual RWSize getBools (bool *arrayPt, RWSize count)
 
virtual RWSize getChars (char *arrayPt, RWSize count)
 
virtual RWSize getDelimitedString (char *string, RWSize maxCount, char delim)
 
virtual RWSize getDelimitedUString (RWUChar *ustring, RWSize maxCount, RWUChar delim)
 
virtual RWSize getDelimitedWString (wchar_t *wstring, RWSize maxCount, wchar_t delim)
 
virtual RWSize getDoubles (double *arrayPt, RWSize count)
 
virtual RWSize getFloats (float *arrayPt, RWSize count)
 
virtual RWSize getInts (int *arrayPt, RWSize count)
 
virtual RWSize getLongDoubles (long double *arrayPt, RWSize count)
 
virtual RWSize getLongLongs (long long *arrayPt, RWSize count)
 
virtual RWSize getLongs (long *arrayPt, RWSize count)
 
virtual RWSize getShorts (short *arrayPt, RWSize count)
 
virtual RWSize getSignedChars (signed char *arrayPt, RWSize count)
 
virtual RWSize getUnsignedChars (unsigned char *arrayPt, RWSize count)
 
virtual RWSize getUnsignedInts (unsigned int *arrayPt, RWSize count)
 
virtual RWSize getUnsignedLongLongs (unsigned long long *arrayPt, RWSize count)
 
virtual RWSize getUnsignedLongs (unsigned long *arrayPt, RWSize count)
 
virtual RWSize getUnsignedShorts (unsigned short *arrayPt, RWSize count)
 
virtual RWSize getWchar_ts (wchar_t *arrayPt, RWSize count)
 
virtual bool isBad () const
 
virtual bool isEof () const
 
virtual bool isFail () const
 
virtual bool isGood () const
 
virtual RWSize skip (RWSize numUnits)
 
- Public Member Functions inherited from RWDataInputStreamImp
virtual ~RWDataInputStreamImp ()
 
- Public Member Functions inherited from RWInputStreamImp
virtual ~RWInputStreamImp ()
 
- Public Member Functions inherited from RWStreamImp
virtual ~RWStreamImp ()
 
- Static Public Attributes inherited from RWXmlObjectStreamCommon
static const char * associationTag
 
static const char * assocKeyTag
 
static const char * assocValueTag
 
static const char * elementPosAttr
 
static const char * IdAttr
 
static const char * IdRefAttr
 
static const char * mapCountAttr
 
static const char * mapKeyTypeAttr
 
static const char * mapTag
 
static const char * mapValueTypeAttr
 
static const char * memberNameAttr
 
static const char * memberTag
 
static const char * memberTypeAttr
 
static const char * nestedObjectTag
 
static const char * objectNameAttr
 
static const char * objectRefTag
 
static const char * objectRefTagLocal
 
static const char * objectTag
 
static const char * objectTypeAttr
 
static const char * primitiveTag
 
static const char * rwEncodingNamespaceValue
 
static const char * rwNamespace
 
static const char * rwNamespaceAttr
 
static const char * rwNamespaceValue
 
static const char * seqCountAttr
 
static const char * seqTypeAttr
 
static const char * sequenceElementTag
 
static const char * sequenceTag
 
static const char * xsdNamespace
 
static const char * xsdNamespaceAttr
 
static const char * xsdNamespaceValue
 
static const char * xsiNamespace
 
static const char * xsiNamespaceAttr
 
static const char * xsiNamespaceValue
 
- Protected Types inherited from RWTCountingBody< RWMutexLock >
typedef RWTLockGuard< RWTMonitor< RWMutexLock > > LockGuard
 
typedef RWTTryLockGuard< RWTMonitor< RWMutexLock > > TryLockGuard
 
typedef RWTUnlockGuard< RWTMonitor< RWMutexLock > > UnlockGuard
 
- Protected Types inherited from RWTMonitor< RWMutexLock >
typedef RWTLockGuard< RWTMonitor< RWMutexLock > > LockGuard
 
typedef RWTTryLockGuard< RWTMonitor< RWMutexLock > > TryLockGuard
 
typedef RWTUnlockGuard< RWTMonitor< RWMutexLock > > UnlockGuard
 

Detailed Description

template<class Transform>
class RWTTransformObjectInputStreamImp< Transform >

This class uses RWXmlObjectInputStreamImp and RWTTransformInputStreamImp to construct an XML input stream that applies a generic transformation to the XML document before reading it from the source.

Example
// Open an fstream to serve as our source
ifstream s("foo.xml");
// Create a transformation object, which must have a
// transform(istream&,ostream&) interface
MyTransform t;
// Create an XML data stream using the fstream
// Read an integer from XML data stream.
int i;
in >> i;

Constructor & Destructor Documentation

template<class Transform >
RWTTransformObjectInputStreamImp< Transform >::RWTTransformObjectInputStreamImp ( std::istream &  istr,
Transform  transformer,
bool  escape 
)
inlineprotected

Used by the make() function and potentially by derived classes to initialize the source data stream and to insert into the stream a transformation of the XML document based on the transformation object transform.

The parameter istr is a handle to the initialized stream.

The parameter transformer is a transformation object that must supply a public interface function transform(istream&,ostream&).

The parameter escape sets whether the input stream contains escapes for XML reserved characters that need to be unescaped. Usually this would be because the objects serialized out with RWXmlObjectOutputStreamImp contained embedded XML.

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.

template<class Transform >
RWTTransformObjectInputStreamImp< Transform >::RWTTransformObjectInputStreamImp ( std::istream &  istr,
Transform  transformer,
std::ios *&  formatter,
bool  escape 
)
inlineprotected

Used by the make() function and potentially by derived classes to initialize the source data stream and to insert into the stream a transformation of the XML document based on the transformation object transform.

The parameter istr is a handle to the initialized stream.

The parameter transformer is a transformation object that must supply a public interface function transform(istream&,ostream&).

The parameter escape sets whether the input stream contains escapes for XML reserved characters that need to be unescaped. Usually this would be because the objects serialized out with RWXmlObjectOutputStreamImp contained embedded XML.

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 constructor 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 to this constructor through the make() function. This 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. See the corresponding make() function description for an example.

Member Function Documentation

template<class Transform >
static RWObjectInputStream RWTTransformObjectInputStreamImp< Transform >::make ( std::istream &  source,
Transform  transformer,
bool  escape = true 
)
inlinestatic

Constructs an RWTTransformObjectInputStreamImp instance that uses the data stream source as its source of bytes, and returns a handle to it. The XML input stream includes a transformation of the XML document based on the transformation object transformer.

The parameter escape sets whether the primitive element values will be unescaped. By default, this parameter is set to true.

template<class Transform >
static RWObjectInputStream RWTTransformObjectInputStreamImp< Transform >::make ( std::istream &  source,
Transform  transformer,
std::ios *&  formatter,
bool  escape = true 
)
inlinestatic

Constructs an RWTTransformObjectInputStreamImp instance that uses the data stream source as its source of bytes, and returns a handle to it. The XML input stream includes a transformation of the XML document based on the transformation object transformer.

The parameter escape sets whether the primitive element values will be unescaped. By default, this parameter is set to true.

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

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

Copyright © 2021 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.