33 #include <boost/cstdint.hpp>
34 #include <boost/operators.hpp>
35 #include <boost/date_time.hpp>
37 #include <rsc/runtime/Printable.h>
38 #include <rsc/misc/UUID.h>
40 #include "rsb/rsbexports.h"
54 class RSB_EXPORT
MetaData:
public virtual rsc::runtime::Printable,
55 boost::equality_comparable<MetaData> {
61 std::string getClassName()
const;
62 void printContents(std::ostream& stream)
const;
69 rsc::misc::UUID getSenderId()
const;
76 void setSenderId(
const rsc::misc::UUID& senderId);
96 boost::uint64_t getCreateTime()
const;
106 void setCreateTime(
const boost::uint64_t& time = 0);
110 void setCreateTime(
const double& time);
111 void setCreateTime(
const boost::posix_time::ptime& time);
119 boost::uint64_t getSendTime()
const;
126 void setSendTime(
const boost::uint64_t& time = 0);
127 void setSendTime(
const double& time);
128 void setSendTime(
const boost::posix_time::ptime& time);
136 boost::uint64_t getReceiveTime()
const;
143 void setReceiveTime(
const boost::uint64_t& time = 0);
144 void setReceiveTime(
const double& time);
145 void setReceiveTime(
const boost::posix_time::ptime& time);
154 boost::uint64_t getDeliverTime()
const;
162 void setDeliverTime(
const boost::uint64_t& time = 0);
163 void setDeliverTime(
const double& time);
164 void setDeliverTime(
const boost::posix_time::ptime& time);
179 std::set<std::string> userTimeKeys()
const;
186 bool hasUserTime(
const std::string& key)
const;
194 boost::uint64_t getUserTime(
const std::string& key)
const;
201 void setUserTime(
const std::string& key,
const boost::uint64_t& time = 0);
202 void setUserTime(
const std::string& key,
const double& time);
203 void setUserTime(
const std::string& key,
const boost::posix_time::ptime& time);
205 std::map<std::string, boost::uint64_t>::const_iterator userTimesBegin()
const;
206 std::map<std::string, boost::uint64_t>::const_iterator userTimesEnd()
const;
221 std::set<std::string> userInfoKeys()
const;
228 bool hasUserInfo(
const std::string& key)
const;
236 std::string getUserInfo(
const std::string& key)
const;
244 void setUserInfo(
const std::string& key,
const std::string& value);
245 std::map<std::string, std::string>::const_iterator userInfosBegin()
const;
246 std::map<std::string, std::string>::const_iterator userInfosEnd()
const;
249 bool operator==(
const MetaData& other)
const;
254 void checkedTimeStampSet(boost::uint64_t& timestamp,
const boost::uint64_t& proposedValue);
255 void checkedTimeStampSet(boost::uint64_t& timestamp,
const double& proposedValue);
256 void checkedTimeStampSet(boost::uint64_t& timestamp,
const boost::posix_time::ptime& proposedValue);