本文整理汇总了C++中ePipeline::PopInt方法的典型用法代码示例。如果您正苦于以下问题:C++ ePipeline::PopInt方法的具体用法?C++ ePipeline::PopInt怎么用?C++ ePipeline::PopInt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ePipeline
的用法示例。
在下文中一共展示了ePipeline::PopInt方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MassItem
void CDebugView::MassItem::Init(ePipeline& Pipe){
m_Alias = Pipe.GetID();
m_Name = Pipe.GetLabel();
int64 Type = Pipe.PopInt();
m_Type = Type;
if (m_Type == MASS_ELEMENT)
{
while(Pipe.Size()){
eElectron E;
Pipe.Pop(&E);
ePipeline* ChildPipe = (ePipeline*)E.Value();
MassItem* ChildItem = new MassItem();
PushChild(ChildItem);
ChildItem->Init(*ChildPipe);
}
}
}
示例2: Object
void CSpacePortal::OnRequestUseObject(int64 SourceID,ePipeline& RequestInfo){
int64 EventID = RequestInfo.PopInt();
ePipeline* ObjectInfo = (ePipeline*)RequestInfo.GetData(0);
ePipeline* ExePipe = (ePipeline*)RequestInfo.GetData(1);
CObjectData Object(*ObjectInfo);
int64 ExecuterID = Object.m_ID;
CLinker ExecuterLinker;
GetLinker(ExecuterID,ExecuterLinker);
if (!ExecuterLinker.IsValid())
{
ExePipe->GetLabel() = Format1024(_T("Error: Executer not started."));
ExePipe->SetID(RETURN_ERROR);
CLinker Requester;
GetLinker(SourceID,Requester);
if (Requester.IsValid())
{
CMsg FeedbackMsg(MSG_TASK_FEEDBACK,NULL,EventID);
ePipeline& Letter = FeedbackMsg.GetLetter();
Letter.PushPipe(*ExePipe);
Requester().PushMsgToSend(FeedbackMsg);
}
return;
}
PushExecuterEvent(ExecuterID,SourceID,EventID);
WriteLogDB(_T("Use Object Event:%I64ld"),EventID);
CMsg NewMsg(MSG_OBJECT_RUN,NULL,EventID);
ePipeline& NewLetter = NewMsg.GetLetter();
NewLetter.PushPipe(*ExePipe);
ExecuterLinker().PushMsgToSend(NewMsg);
};
示例3:
//以下函数内部使用无需加锁
//////////////////////////////////////////////////////////////////////////
bool CLinkerPipe::ReceiverID2LocalAddress(ePipeline& Receiver,ePipeline& LocalAddress){
int64 ReceiverID = Receiver.PopInt();
if (ReceiverID==SYSTEM_SOURCE)
{
LocalAddress.PushInt(ReceiverID);
LocalAddress<<Receiver; //可能还有其它地址
return TRUE;
}
assert(Receiver.Size()==0); //其它情况应该没有多余地址
map<int64,ePipeline>::iterator It = m_LocalAddressList.find(ReceiverID);
if(It != m_LocalAddressList.end()){
ePipeline& Pipe = It->second;
LocalAddress = Pipe;
return TRUE;
}
return FALSE;
}