|
|
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members
MemBufInputSource Class ReferenceThis class is a derivative of the standard InputSource class.
More...
#include <MemBufInputSource.hpp>
Inheritance diagram for MemBufInputSource:
Collaboration diagram for MemBufInputSource:
List of all members. Public Methods
- BinInputStream* makeStream () const
- This method will return a binary input stream derivative that will parse from the memory buffer. More...
- void setCopyBufToStream (const bool newState)
- By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from. More...
|
|
- MemBufInputSource ( const XMLByte* const srcDocBytes , const unsigned int byteCount , const XMLCh* const bufId , const bool adoptBuffer = false )
- A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer. More...
- MemBufInputSource ( const XMLByte* const srcDocBytes , const unsigned int byteCount , const char* const bufId , const bool adoptBuffer = false )
- This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally.
|
- ~MemBufInputSource ()
- If the buffer was adopted, the copy made during construction is deleted at this point.
Detailed Description
This class is a derivative of the standard InputSource class.
It provides
for the parser access to data stored in a memory buffer. The type of
buffer and its host specific attributes are of little concern here. The
only real requirement is that the memory be readable by the current
process.
Note that the memory buffer size is expressed in bytes, not in
characters. If you pass it text data, you must account for the bytes
per character when indicating the buffer size.
As with all InputSource derivatives. The primary objective of an input
source is to create an input stream via which the parser can spool in
data from the referenced source. In this case, there are two options
available.
The passed buffer can be adopted or merely referenced. If it is adopted,
then it must be dynamically allocated and will be destroyed when the
input source is destroyed (no reference counting!.) If not adopted, the
caller must insure that it remains valid until the input source object
is destroyed.
The other option indicates whether each stream created for this input
source should get its own copy of the data, or whether it should just
stream the data directly from this object's copy of the data. The same
rules apply here, in that the buffer must either be copied by the
stream or it must remain valid until the stream is destroyed.
Constructor & Destructor Documentation
MemBufInputSource::MemBufInputSource (
|
const XMLByte * const srcDocBytes, |
|
const unsigned int byteCount, |
|
const XMLCh * const bufId, |
|
const bool adoptBuffer = false) |
|
A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer.
The parser will parse
from this memory buffer until it has eaten the indicated number of
bytes.
Note that the system id provided serves two purposes. Firstly it is
going to be displayed in error messages as the source of the error.
And secondly, any entities which are refered to from this entity
via relative paths/URLs will be relative to this fake system id.
-
Parameters:
-
srcDocBytes
|
The actual data buffer to be parsed from.
|
byteCount
|
The count of bytes (not characters, bytes!)
in the buffer.
@Param bufId A fake system id for the buffer.
@Param adoptBuffer Indicates whether this object should adopt
the buffer (i.e. make a copy of it) or just
use it in place.
|
MemBufInputSource::MemBufInputSource (
|
const XMLByte * const srcDocBytes, |
|
const unsigned int byteCount, |
|
const char * const bufId, |
|
const bool adoptBuffer = false) |
|
This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally.
MemBufInputSource::~MemBufInputSource () |
|
If the buffer was adopted, the copy made during construction is deleted at this point.
Member Function Documentation
This method will return a binary input stream derivative that will parse from the memory buffer.
If setCopyBufToStream() has been set,
then the stream will make its own copy. Otherwise, it will use the
buffer as is (in which case it must remain valid until the stream
is no longer in use, i.e. the parse completes.)
-
Returns:
-
A dynamically allocated binary input stream derivative that
can parse from the memory buffer.
Reimplemented from InputSource.
void MemBufInputSource::setCopyBufToStream (
|
const bool newState) |
|
By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from.
This
avoids having to deal with aliasing of the buffer for simple work. But,
for higher performance applications or for large buffers, this is
obviously not optimal.
In such cases, you can call this method to turn off that default
action. Once turned off, the streams will just get a pointer to the
buffer and parse directly from that. In this case, you must insure that
the buffer remains valid for as long as any parse events are still
using it.
-
Parameters:
-
newState
|
The new boolean flag state to set.
|
The documentation for this class was generated from the following file: