#include <iostream> using namespace std; #include "ace/Task.h" #include "ace/Message_Queue.h" class QTest { private: ACE_Message_Queue<ACE_NULL_SYNCH> *mq_; int no_msgs_; public: QTest(int num_msgs) : no_msgs_(num_msgs) { ACE_TRACE("QTest::QTest"); if(!(this->mq_=new ACE_Message_Queue<ACE_NULL_SYNCH>())) ACE_DEBUG((LM_ERROR,"~T~D~@~A~P ~H기~Y~T ~W~P~_!\n")); } virtual ~QTest() { delete mq_; } int enq_msgs() { ACE_TRACE("QTest::enq_msg"); for (int i=0; i<no_msgs_;i++) { ACE_Message_Block *mb; ACE_NEW_RETURN(mb, ACE_Message_Block(ACE_OS::strlen("This is message 1\n")), -1); ACE_OS::sprintf(mb->wr_ptr(), "This is message %d\n", i); // ~U~D~Z~T~U~\ ~A기~L~A wr_ptr를 | ~D~D~U~X~J~T ~C~W~P 주~]~X~U~X~]. mb->wr_ptr(ACE_OS::strlen("This is message 1\n")); // ~T~D~@ ~A~P~W~P ~T~D~@ ~T~_~]~D ~D~J~T~K. if(this->mq_->enqueue_prio(mb)==-1) { ACE_DEBUG((LM_ERROR,"\n~T~D~@ ~A~P~W~P ~D~]~D ~H~X ~W~F~K!\n")); return -1; } ACE_DEBUG((LM_INFO,"EQ'd data: %s\n", mb->rd_ptr() )); } return 0; } int deq_msgs() { ACE_TRACE("QTest::dequeue_all"); ACE_DEBUG((LM_INFO,"~A~P ~U~H~]~X ~T~D~@~\~H~X:%d ; | ~D체 ~T~D~@ ~A기 ~U~D :%d \n", mq_->message_count(), mq_->message_bytes())); ACE_Message_Block *mb; for(int i=0;i <no_msgs_; i++) { mq_->dequeue_head(mb); ACE_DEBUG((LM_INFO,"DQ'd data %s\n", mb->rd_ptr())); ACE_DEBUG((LM_INFO,"~A~P ~U~H~]~X ~T~D~@~\~H~X:%d ; | ~D체 ~T~D~@ ~A기 ~U~D :%d \n", mq_->message_count(), mq_->message_bytes())); mb->release(); } return 0; } }; int main(int argc, char* argv[]) { QTest test(10); if(test.enq_msgs() == -1) ACE_ERROR_RETURN( (LM_ERROR,"~T~D~\그~^ ~K~L!\n"), -1); test.deq_msgs(); }
런타임시 에러가 있네요 -- ㅡ.ㅡ 2005-03-18









![[http]](/wiki/imgs/http.png)
