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] ); } } }
bool ReadData::process( SocketPackage& cPackageIn , SocketPackage& cPackageOut ) { std::string sBuffer, sFilename; bool bCanRead = false; std::ifstream cFile; cPackageIn.resetCounter(); cPackageIn.getString( sBuffer ); // action name createFilename( cPackageIn, sFilename, false ); // read two strings cFile.open( sFilename.c_str(), std::ios::in|std::ios::binary ); bCanRead = cFile.is_open(); if ( bCanRead ) { struct _stat nStatus; int nSize; std::vector<char> caBuffer; ::_stat( sFilename.c_str(), &nStatus ); nSize = nStatus.st_size; caBuffer.resize( nSize ); cFile.read( &caBuffer[0], nSize ); cFile.close(); cPackageOut.resetCounter(); cPackageOut.add( &caBuffer[0], nSize ); cPackageOut.done(); } else cPackageOut.resetCounter(); return bCanRead; }