本文整理汇总了C++中zmq::message_t::rebuild方法的典型用法代码示例。如果您正苦于以下问题:C++ message_t::rebuild方法的具体用法?C++ message_t::rebuild怎么用?C++ message_t::rebuild使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zmq::message_t
的用法示例。
在下文中一共展示了message_t::rebuild方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pack
static inline
void
pack(zmq::message_t& message,
const std::string& value)
{
message.rebuild(value.size());
std::memcpy(
message.data(),
value.data(),
value.size()
);
}
示例2: error_t
void
init_msg(const void* t, size_t sz, zmq::message_t& msg)
{
try
{
void *data = ::malloc(sz);
if (!data)
{
throw zmq::error_t();
}
::memcpy(data, t, sz);
msg.rebuild(data, sz, &zmqmessage_free, 0);
}
catch (const zmq::error_t& e)
{
throw_zmq_exception(e);
}
}
示例3: server_worker
void server_worker(zmq::message_t& msg, std::string str) {
// std::cout << "Received: " << str << std::endl;
std::string uuid_src("");
std::string uuid_dst("");
std::string data("");
if (!str.empty()) {
Utils::ParseTranserJson(str, uuid_src, uuid_dst, data);
if (!uuid_dst.empty() && !data.empty()) {
ServerManager::Instance().InsertMessage(uuid_src, uuid_dst, data);
}
}
From_Message fm = ServerManager::Instance().GetMessage(uuid_src);
std::string content = Utils::BuildTranserJson(fm.uuid_dst, "", fm.data);
std::cout << "received: " << str << " will send: " << content << std::endl;
//memcpy(msg.data(), content.c_str(), content.length()+1); // segment error
msg.rebuild(content.c_str(), content.length());
}
示例4: str_to_msg
inline void str_to_msg( zmq::message_t & msg, std::string const & str )
{
msg.rebuild( str.size()+1 );
memcpy( msg.data(), (void*)str.c_str(), str.size()+1 );
}