ACE_Message_Block小知識 |
1 copy() 不需要讓寫指針后移.
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ); mb->copy(buff); //buff先已經初始化 2 初始化mb后需要后移指針的情況
2.1 ACE_Message_Block* mb = new ACE_Message_Block(buff,len); mb->wt_ptr(len); //len是buff的長度 len = strlen(buff) +1 // +1 表示后面的\0 2.2
ACE_Message_Block* mb = new ACE_Message_Block(BUFSIZ); ACE_OS::sprintf(mb->wt_ptr(),buff); mb->wt_ptr(len); 2.3
ACE_Message_Block* mb = new ACE_Message_Block(len, ACE_Message_Block::MB_DATA, mb2, //表示 mb->cont(mb2) buff) mb->wt_ptr(len); 3.讓消息接成串cont()時,千萬不要直接或接間的把它接成一個環
mb->cont(mb2); mb2->cont(mb3); //ok ***mb3->cont(mb); //死定了 4.通知其它線程結束時,可以通過ACE_Message_Block::MB_STOP
ACE_Message_Block* lastMsg =ACE_Message_Block ,ACE_Message_Block::MB_STOP) otherTask->putq(lastMsg);
otherTask在接收到的時候如下處理 int OtherTask::svc() { ACE_Message_Block* mb; while(1) { getq(mb); if(mb->get_tpye() == ACE_Message_Block::MB_STOP) { mb->release(); break; //退出這個永久限環) } else { handle_message(mb); //處理這條消息 } } // end while return 0; } |
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
相關文章:
|
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|