version 1.17, 2006/04/18 19:08:42
|
version 1.18, 2006/11/07 21:30:36
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: Adrian Schuur (schuur@de.ibm.com) - PEP 164 |
|
// |
|
// Modified By: David Dillard, VERITAS Software Corp. |
|
// (david.dillard@veritas.com) |
|
// Aruran, IBM (ashanmug@in.ibm.com) for BUG#3348 |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
| |
|
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
AutoStreamer::AutoStreamer(ObjectStreamer *primary, Uint8 marker) { |
AutoStreamer::AutoStreamer(ObjectStreamer *primary, Uint8 marker) |
|
{ |
_readerCount=0; | _readerCount=0; |
if (marker) { |
if (marker) |
|
{ |
_readers[_readerCount].reader=primary; | _readers[_readerCount].reader=primary; |
_readers[_readerCount++].marker=marker; | _readers[_readerCount++].marker=marker; |
} | } |
|
|
_primary=primary; | _primary=primary; |
} | } |
| |
AutoStreamer::~AutoStreamer() { |
AutoStreamer::~AutoStreamer() |
|
{ |
for (Uint32 i=0; i<=_readerCount; ++i) | for (Uint32 i=0; i<=_readerCount; ++i) |
{ | { |
if (_defaultReader != _readers[i].reader) | if (_defaultReader != _readers[i].reader) |
|
|
delete _defaultReader; | delete _defaultReader; |
} | } |
| |
void AutoStreamer::addReader(ObjectStreamer *reader, Uint8 marker) { |
void AutoStreamer::addReader(ObjectStreamer *reader, Uint8 marker) |
if (marker) { |
{ |
|
if (marker) |
|
{ |
_readers[_readerCount].reader=reader; | _readers[_readerCount].reader=reader; |
_readers[_readerCount++].marker=marker; | _readers[_readerCount++].marker=marker; |
} | } |
|
|
} | } |
| |
| |
void AutoStreamer::decode(const Buffer& in, unsigned int pos, CIMClass& cls) |
void AutoStreamer::decode( |
|
const Buffer& in, |
|
unsigned int pos, |
|
CIMClass& cls) |
|
{ |
|
for (Uint16 i=0,m=_readerCount; i<m; i++) |
|
{ |
|
if (_readers[i].marker==in[pos]) |
{ | { |
for (Uint16 i=0,m=_readerCount; i<m; i++) { |
|
if (_readers[i].marker==in[pos]) { |
|
_readers[i].reader->decode(in,pos,cls); | _readers[i].reader->decode(in,pos,cls); |
return; | return; |
} | } |
|
|
_defaultReader->decode(in,pos,cls); | _defaultReader->decode(in,pos,cls); |
} | } |
| |
void AutoStreamer::decode(const Buffer& in, unsigned int pos, CIMInstance& inst) |
void AutoStreamer::decode( |
|
const Buffer& in, |
|
unsigned int pos, |
|
CIMInstance& inst) |
|
{ |
|
for (Uint16 i=0,m=_readerCount; i<m; i++) |
|
{ |
|
if (_readers[i].marker==in[pos]) |
{ | { |
for (Uint16 i=0,m=_readerCount; i<m; i++) { |
|
if (_readers[i].marker==in[pos]) { |
|
_readers[i].reader->decode(in,pos,inst); | _readers[i].reader->decode(in,pos,inst); |
return; | return; |
} | } |
|
|
_defaultReader->decode(in,pos,inst); | _defaultReader->decode(in,pos,inst); |
} | } |
| |
void AutoStreamer::decode(const Buffer& in, unsigned int pos, CIMQualifierDecl& qual) |
void AutoStreamer::decode( |
|
const Buffer& in, |
|
unsigned int pos, |
|
CIMQualifierDecl& qual) |
|
{ |
|
for (Uint16 i=0,m=_readerCount; i<m; i++) |
|
{ |
|
if (_readers[i].marker==in[pos]) |
{ | { |
for (Uint16 i=0,m=_readerCount; i<m; i++) { |
|
if (_readers[i].marker==in[pos]) { |
|
_readers[i].reader->decode(in,pos,qual); | _readers[i].reader->decode(in,pos,qual); |
return; | return; |
} | } |
|
|
} | } |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
|
|