U E D R S I H C RSS
ID
Password
Join
決定은 깨끗이 곧게 잘라지는 날카로운 칼이고, 未定은 이리 치고 저리 쳐도 자르질 못해서 날만 상하고만 무딘 칼이다. ―C.C.T.


#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

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.3427 sec