当前位置: 首页>>代码示例>>C++>>正文


C++ RoutableMessageHeader::destination_object方法代码示例

本文整理汇总了C++中RoutableMessageHeader::destination_object方法的典型用法代码示例。如果您正苦于以下问题:C++ RoutableMessageHeader::destination_object方法的具体用法?C++ RoutableMessageHeader::destination_object怎么用?C++ RoutableMessageHeader::destination_object使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RoutableMessageHeader的用法示例。


在下文中一共展示了RoutableMessageHeader::destination_object方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: processMessage

void Space::processMessage(const RoutableMessageHeader&header,MemoryReference message_body) {
    if (header.destination_object()==ObjectReference::spaceServiceID()) {
        std::tr1::unordered_map<unsigned int,MessageService*>::iterator where=mServices.find(header.destination_port());
        if (where!=mServices.end()) {
            where->second->processMessage(header,message_body);
        }else {
            SILOG(space,warning,"Do not know where to forward space-destined message to "<<header.destination_port());
        }
    }else if (mRouter) {
        mRouter->processMessage(header,message_body);
    }else {
        SILOG(space,warning,"Do not know where to forward message to "<<header.destination_object().toString());
    }
}
开发者ID:MikeSofaer,项目名称:sirikata,代码行数:14,代码来源:Space.cpp

示例2: processMessage

void QueryTracker::processMessage(const RoutableMessageHeader &msgHeader, MemoryReference body) {
    if (!msgHeader.has_reply_id()) {
        SILOG(cppoh, error, "QueryTracker::processMessage called for non-reply");
        return; // Not a response message--shouldn't have gotten here.
    }
    // This is a response message;
    int64 id = msgHeader.reply_id();
    SentMessageMap::iterator iter = mSentMessages.find(id);
    if (iter != mSentMessages.end()) {
        if ((!iter->second->header().has_destination_space() ||
             iter->second->header().destination_space() == msgHeader.destination_space()) &&
            iter->second->getRecipient() == msgHeader.source_object())
        {
            iter->second->processMessage(msgHeader, body);
        } else {
            ObjectReference dest(ObjectReference::null());
            if (msgHeader.has_destination_object()) {
                dest = msgHeader.destination_object();
            }
            std::ostringstream os;
            os << "Response message with ID "<<id<<" to object "<<dest<<
                " should come from "<<iter->second->getRecipient() <<
                " but instead came from " <<msgHeader.source_object();
            SILOG(cppoh, warning, os.str());
        }
    } else {
        SILOG(cppoh, warning, "Got a reply for unknown query ID "<<id);
    }
}
开发者ID:MikeSofaer,项目名称:sirikata,代码行数:29,代码来源:QueryTracker.cpp

示例3: processMessage

void SingleStreamProximityConnection::processMessage(const RoutableMessageHeader&hdr,
                                                     MemoryReference message_body) {
    ObjectStreamMap::iterator where=mObjectStreams.find(hdr.has_source_object()?hdr.source_object():ObjectReference::null());
    if (where==mObjectStreams.end()) {
        where=mObjectStreams.find(hdr.has_destination_object()?hdr.destination_object():ObjectReference::null());
    }
    if (where==mObjectStreams.end()) {
        SILOG(proximity,error,"Cannot locate object with OR "<<hdr.source_object()<<" in the proximity connection map: "<<hdr.has_source_object());
    } else {
        std::string data;
        RoutableMessageHeader rmh;
        rmh.SerializeToString(&data);
        where->second->send(MemoryReference(data),message_body,Network::ReliableOrdered);
    }
}
开发者ID:,项目名称:,代码行数:15,代码来源:


注:本文中的RoutableMessageHeader::destination_object方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。