// SMsgDirG2ModifyService::Pack // Virtual method from SmallMessage. Packs data into message buffer. void* SMsgDirG2ModifyService::Pack(void) { WTRACE("SMsgDirG2ModifyService::Pack"); SetKeyType(KT_SERVICE); SetServiceType(WONMsg::SmallDirServerG2); if (IsExtended()) { SetMessageType(WONMsg::DirG2ModifyServiceEx); SetExtended(true, true); } else SetMessageType(WONMsg::DirG2ModifyService); SMsgDirG2UpdateExtendBase::Pack(); AppendByte(mEntityFlags); PackKey(*this); Append_PW_STRING(mNewName); unsigned char aLen = mNewNetAddress.size(); AppendByte(aLen); if (aLen > 0) AppendBytes(aLen, mNewNetAddress.data()); Append_PW_STRING(mNewDisplayName); AppendLong(mNewLifespan); PackExtended(); PackPeerData(); return GetDataPtr(); }
// SMsgDirG2ExplicitSetDataObjects::Pack // Virtual method from SmallMessage. Packs data into message buffer. void* SMsgDirG2ExplicitSetDataObjects::Pack(void) { WTRACE("SMsgDirG2ExplicitSetDataObjects::Pack"); SetServiceType(WONMsg::SmallDirServerG2); SetMessageType(mKeyType == KT_SERVICE ? WONMsg::DirG2ServiceExplicitSetDataObjects : WONMsg::DirG2DirectoryExplicitSetDataObjects); SMsgDirG2UpdateBase::Pack(); PackKey(*this); AppendShort(mObjects.size()); ExplicitDOInfoList::iterator anItr(mObjects.begin()); for (; anItr != mObjects.end(); anItr++) { AppendByte(static_cast<unsigned char>(anItr->mSetMode)); unsigned char aTypeLen = anItr->mData.GetDataType().size(); AppendByte(aTypeLen); if (aTypeLen > 0) AppendBytes(aTypeLen, anItr->mData.GetDataType().data()); unsigned short aDataLen = anItr->mData.GetData().size(); AppendShort(aDataLen); if (aDataLen > 0) AppendBytes(aDataLen, anItr->mData.GetData().data()); } PackPeerData(); return GetDataPtr(); }
// SMsgDirG2SetDataObjects::Pack // Virtual method from SmallMessage. Packs data into message buffer. void* SMsgDirG2SetDataObjects::Pack(void) { WTRACE("SMsgDirG2SetDataObjects::Pack"); SetExtended(true, false); SetServiceType(WONMsg::SmallDirServerG2); SetMessageType(mKeyType == KT_SERVICE ? WONMsg::DirG2ServiceSetDataObjects : WONMsg::DirG2DirectorySetDataObjects); SMsgDirG2UpdateExtendBase::Pack(); AppendByte(static_cast<unsigned char>(mSetMode)); PackKey(*this); PackExtended(); PackPeerData(); return GetDataPtr(); }
// TMsgDirRenewDirectory::Pack // Virtual method from TMessage. Packs data into message buffer and // sets the new message length. void* TMsgDirRenewDirectory::Pack(void) { WTRACE("TMsgDirRenewDirectory::Pack"); SetServiceType(WONMsg::DirServer); SetMessageType(WONMsg::DirRenewDirectory); TMsgDirDirectoryBase::Pack(); WDBG_LL("TMsgDirRenewDirectory::Pack Appending message data"); AppendLong(mLifespan); // Pack peer data if needed PackPeerData(); return GetDataPtr(); }
// SMsgDirG2ClearDataObjects::Pack // Virtual method from SmallMessage. Packs data into message buffer. void* SMsgDirG2ClearDataObjects::Pack(void) { WTRACE("SMsgDirG2ClearDataObjects::Pack"); SetServiceType(WONMsg::SmallDirServerG2); SetMessageType(mKeyType == KT_SERVICE ? WONMsg::DirG2ServiceClearDataObjects : WONMsg::DirG2DirectoryClearDataObjects); SMsgDirG2UpdateBase::Pack(); PackKey(*this); AppendShort(mClearTypes.size()); DataObjectTypeSet::iterator anItr(mClearTypes.begin()); for (; anItr != mClearTypes.end(); anItr++) { unsigned char aLen = anItr->GetDataType().size(); AppendByte(aLen); if (aLen > 0) AppendBytes(aLen, anItr->GetDataType().data()); } PackPeerData(); return GetDataPtr(); }