Ignore:
Timestamp:
02/04/13 18:47:38 (11 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Moved the registration code into MultiBuffer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/client/c/hu/varadiistvan/xplra/MultiBuffer.cc

    r21 r22  
    4646using xplra::Protocol;
    4747
     48using std::vector;
    4849using std::string;
    4950using std::min;
     
    231232//------------------------------------------------------------------------------
    232233
    233 MultiBuffer::MultiBuffer(XPlane& xplane) throw() :
     234MultiBuffer::MultiBuffer(XPlane& xplane, uint8_t registerCommand,
     235                         uint8_t unregisterCommand) throw() :
    234236    data(0),
    235237    xplane(xplane),
    236     unregisterCommand(0),
     238    registerCommand(registerCommand),
     239    unregisterCommand(unregisterCommand),
    237240    registeredID(-1)
    238241{
     
    329332        xplane.checkStream();
    330333
    331         unregisterCommand = doRegister();
     334        xplane.stream->writeU8(registerCommand);
     335        xplane.stream->writeU32(dataRefs.size());
     336
     337        for(vector<DataRef>::const_iterator i = dataRefs.begin();
     338            i!=dataRefs.end(); ++i)
     339        {
     340            const DataRef& dataRef = *i;
     341            xplane.stream->writeString(dataRef.name);
     342            xplane.stream->writeU8(dataRef.type);
     343            if (dataRef.isArray()) {
     344                xplane.stream->writeS32(dataRef.length);
     345                xplane.stream->writeS32(dataRef.offset);
     346            }
     347        }
    332348
    333349        xplane.stream->flush();
Note: See TracChangeset for help on using the changeset viewer.