コード例 #1
0
ファイル: message.cpp プロジェクト: capitalk/fix8
//-------------------------------------------------------------------------------------------------
unsigned MessageBase::encode(ostream& to) const
{
	const std::ios::pos_type where(to.tellp());
	for (Positions::const_iterator itr(_pos.begin()); itr != _pos.end(); ++itr)
	{
#if defined POPULATE_METADATA
		check_set_rlm(itr->second);
#endif
		Presence::const_iterator fpitr(_fp.get_presence().end());
		if (!_fp.get(itr->second->_fnum, fpitr, FieldTrait::suppress))	// some fields are not encoded until unsuppressed (eg. checksum)
		{
			itr->second->encode(to);
			if (_fp.get(itr->second->_fnum, fpitr, FieldTrait::group))
				encode_group(itr->second->_fnum, to);
		}
	}

	return to.tellp() - where;
}
コード例 #2
0
ファイル: message.cpp プロジェクト: ervinbosenbacher/fix8
//-------------------------------------------------------------------------------------------------
size_t MessageBase::encode(char *to) const
{
	const char *where(to);
	for (Positions::const_iterator itr(_pos.begin()); itr != _pos.end(); ++itr)
	{
#if defined POPULATE_METADATA
		check_set_rlm(itr->second);
#endif
		Presence::const_iterator fpitr(_fp.get_presence().end());
		if (!_fp.get(itr->second->_fnum, fpitr, FieldTrait::suppress))	// some fields are not encoded until unsuppressed (eg. checksum)
		{
			to += itr->second->encode(to);
			if (_fp.get(itr->second->_fnum, fpitr, FieldTrait::group))
				to += encode_group(itr->second->_fnum, to);
		}
	}

	return to - where;
}