bool SpotMessageHardwareInfo::parse (BufferType const & buff) { if(buff.size() <= CHeaderSize) return false; // message too short if( buff[CMessageItemQtyOffset] == 0 ) { return true; // This request has no item codes, so this is a request for ALL available items in SPOT. } bool blRet = AbsSpotMessageWithAppCatCmdID::parse(buff); if( !blRet ) return false; // malformed header BufferType::const_iterator itDataBegining( buff.begin() + CMessageItemDataOffset ); m_ItemVector.assign(itDataBegining, itDataBegining + buff[CMessageItemQtyOffset]); std::cout << "SpotMessageHardwareInfo::parse() - Length: " << size() << " bytes.\n"; char* pcBuffer = new char[3 * size() + 2]; std::cout << "\nMessage Data: " << Utils::dumpBuffer(pcBuffer, &buff.front(), size()) << std::endl << std::endl; delete[] pcBuffer; return true; }