Life & Code

代码是咒语,我是魔法师

ACE_NT_Service

#include  " ace/Singleton.h "
#include 
" ace/Mutex.h "
#include 
" ace/Event_Handler.h "
#include 
< ace / NT_Service.h >
#include 
< ace / Log_Msg.h >

#include 
< iostream >
using   namespace  std;

class  MYService: public  ACE_NT_Service
{
    
bool  m_stop;
public :
    MYService():ACE_NT_Service(
" MyACEService_4 " , 0 ,ACE_NT_SERVICE_START_TIMEOUT,
            SERVICE_WIN32_OWN_PROCESS 
|  SERVICE_INTERACTIVE_PROCESS),m_stop( false ) {
        }

    
virtual   int  svc ( void );
    
virtual   void  handle_control (DWORD control_code);
    
virtual   ~ MYService() {}
}
;

typedef ACE_Singleton
< MYService, ACE_Mutex >  SERVICE;

int  MYService::svc ( void )
{
    report_status (SERVICE_RUNNING);
    
while ( ! m_stop)
    
{
        Sleep(
2000 );
        MessageBox(NULL,
" aaa " , " error " , 0 );
    }

    
return   0 ;
}


void  MYService::handle_control (DWORD control_code)
{
    
if  (control_code  ==  SERVICE_CONTROL_SHUTDOWN
        
||  control_code  ==  SERVICE_CONTROL_STOP)
    
{
        report_status (SERVICE_STOP_PENDING);
        m_stop 
=   true ;
    }

    ACE_NT_Service::handle_control (control_code);
}


ACE_NT_SERVICE_DEFINE (MyACEService_4,
                       MYService,
                       ACE_TEXT (
" MyACEService_4 " ));

int  main( int  argc, _TCHAR *  argv[])
{
    
    ACE::init ();
    ACE_NT_SERVICE_RUN (MyACEService_4,
        SERVICE::instance (),
        ret);
    
    ACE::fini ();

/*     安装服务
         ACE::init ();
    SERVICE::instance()->insert();
    ACE::fini ();
*/

    
return   0 ;
}


posted on 2006-08-31 09:15 橙子 阅读(1482) 评论(2)  编辑 收藏 引用 所属分类: ACE

评论

# re: ACE_NT_Service 2007-06-14 15:02 terran

我定义了一个ntservice类 继承 ACE_NT_Service 在redhat 9中编译出错
// ntsvc.h
1class NTService: public ACE_NT_Service

2 {

3 public:

4 NTService ();

5 int start_server();

6 // virtual void handle_control (DWORD control_code);
7 void handle_control (DWORD control_code);

8 // We override <handle_control> because it handles stop requests

9 // privately.


10 //virtual int handle_exception (ACE_HANDLE h);
11 int handle_exception (ACE_HANDLE h);

12 // We override <handle_exception> so a 'stop' control code can pop

13 // the reactor off of its wait.

14 //virtual int svc (void);

15 int svc (void);

16 private:

17 typedef ACE_NT_Service inherited;

};
报错是:
ntsvc.h:2: parse error before `{' token
ntsvc.h:16: parse error before `private'
ntsvc.h:18: parse error before `}' token

请问这是什么错了呢?  回复  更多评论   

# re: ACE_NT_Service 2007-06-19 19:13 橙子

这个只能在Windows下面用吧。
  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(10)

随笔分类

随笔档案

相册

收藏夹

搜索

最新评论

阅读排行榜