Beispiel #1
0
void
StatusType::serialize( std::vector<std::string>& saStatus
                     , size_t&                   nCount
                     , SocketPackage&            cPackage
                     , bool                      bWriteToStorage )
{
    size_t  n;

    if ( bWriteToStorage )
    {
        cPackage.add( int(nCount) );

        for ( n=0; n<nCount; n++ )
            cPackage.add( saStatus[n] );
    }
    else
    {
        nCount   = cPackage.getInt();

        saStatus.resize( std::max<size_t>(INI_SIZE,nCount) );

        for ( n=0; n<nCount; n++ )
        {
            cPackage.getString( saStatus[n] );
        }
    }
}
Beispiel #2
0
void
ReadData::readEveryObject( SocketPackage& cPackage )
{
    ItemStorageWithKey<Class,std::string>&  cStorage    = Class::getStorage();
    int                                     n, max;
    std::string                             sID         = Class::ClassID();
    TFSBasis*                               pObject;

    max     = cPackage.getInt();

    for ( n=0; n<max; n++ )
        TFSBasis::serialize( pObject, cPackage, false );
}
Beispiel #3
0
void
TFSBasis::serialize( std::vector<Class*>& paArray
                     , size_t&              nSize
                     , SocketPackage&       cPackage
                     , bool                 bWriteToStorage )
{
    size_t      n;
    TFSBasis   *pAction;

    if ( bWriteToStorage )
    {
        cPackage.add( int(nSize) );

        for ( n=0; n<nSize; n++ )
        {
            pAction = paArray[n];

            if ( !getStorage().isPresent(pAction) )
                pAction = NULL;

            serialize( pAction, cPackage, true );
        }
    }
    else
    {
        nSize   = cPackage.getInt();

        paArray.resize( std::max<size_t>(INI_SIZE,nSize) );

        for ( n=0; n<nSize; n++ )
        {
            serialize( pAction, cPackage, false );

            if ( pAction == NULL )
                paArray[n]  = NULL;
            else
                paArray[n]  = dynamic_cast<Class*>( pAction );
        }
    }
}