Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322737
  • 博文数量: 49
  • 博客积分: 653
  • 博客等级: 上士
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-01 22:43
文章分类

全部博文(49)

文章存档

2018年(1)

2017年(4)

2015年(1)

2014年(6)

2013年(8)

2012年(24)

2011年(5)

分类: LINUX

2012-06-11 17:08:02


头文件

点击(此处)折叠或打开

  1. #define _LOGICWORKER_H

  2. #include <ace/Task.h>
  3. #include <ace/Synch.h>

  4. #include "AdLog/ADDLoggerMacros.h"
  5. #include "StringUtil/StringPair.h"
  6. #include "StringUtil/StringLib.h"
  7. #include "Udpd/UDPServer.h"

  8. class LogicWorker : public ACE_Task<ACE_MT_SYNCH>
  9. {
  10.   public:
  11.     
  12.     virtual int close();
  13.     virtual int open(void*);
  14.     virtual void set_threads(unsigned int threads);
  15.     virtual int svc();

  16.     void set_udp_server(UDPServer *udpserver);
  17.     static LogicWorker* instance();


  18.   protected:
  19.     UDPServer *udpserver_;
  20.     unsigned int threads_;
  21.     LogicWorker();
  22.     ~LogicWorker(){};
  23.   private:
  24.     static LogicWorker * inst_;


  25. };
  26. #endif


实现


点击(此处)折叠或打开

  1. #include "LogicWorker.h"
  2. #include <cctype>
  3. #include <string>
  4. #include <iterator>


  5. LogicWorker *LogicWorker::inst_ = NULL;


  6. LogicWorker *LogicWorker::instance()
  7. {
  8.     if (inst_ == NULL)
  9.         inst_ = new LogicWorker();
  10.     return inst_;
  11. }

  12. LogicWorker::LogicWorker()
  13. {

  14. }

  15. int LogicWorker::close()
  16. {
  17.     return 0;
  18. }
  19. int LogicWorker::open(void*)
  20. {
  21.     return activate(THR_NEW_LWP|THR_JOINABLE, threads_);
  22. }

  23. void LogicWorker::set_threads(unsigned int threads)
  24. {
  25.     threads_ = threads;
  26. }
  27. void LogicWorker::set_udp_server(UDPServer *udpserver)
  28. {
  29.     udpserver_ = udpserver;
  30. }
  31. int LogicWorker::svc()
  32. {

  33.     while(1)
  34.     {
  35.         //sleep(1);
  36. // 具体实现
  37.     
  38.     }
  39.     return 0;
  40. }

阅读(568) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~