📄 logging_server.h
字号:
/*
** Logging_Server.h,v 1.1 2001/09/06 22:40:26 shuston Exp
**
** Copyright 2001 Addison Wesley. All Rights Reserved.
*/
#ifndef _LOGGING_SERVER_H
#define _LOGGING_SERVER_H
#include "ace/SOCK_Acceptor.h"
#include "ace/FILE_Addr.h"
#include "ace/FILE_Connector.h"
#include "ace/FILE_IO.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Stream.h"
#include "Logging_Server.h"
#include "ace/OS_NS_string.h"
#include "ace/os_include/os_netdb.h"
#define MAX_NAME_LENGTH 255
class ACE_SOCK_Stream;
class Logging_Server
{
public:
// Template Method that runs logging server's event loop.
virtual int Logging_Server::run (u_short server_port)
{
if (open (server_port) == -1)
return -1;
for (;;) {
if (handle_connections () == -1)
return -1;
if (handle_data () == -1)
return -1;
}
return 0;
}
protected:
// The following four methods are ``hooks'' that can be
// overridden by subclasses.
virtual int Logging_Server::open (u_short logger_port)
{
ACE_INET_Addr server_addr;
if(server_addr.set (logger_port,(ACE_UINT32) INADDR_ANY)==-1) return -1;;
// Start listening, enable reuse of listen address for quick restarts.
return acceptor_.open (server_addr, 1);
}
virtual int handle_connections () = 0;
virtual int handle_data (ACE_SOCK_Stream * = 0) = 0;
// The following helper method can be used by the hook methods.
// Close the socket endpoint.
virtual ~Logging_Server () { acceptor_.close (); }
// Accessor.
ACE_SOCK_Acceptor &acceptor () { return acceptor_; }
private:
ACE_SOCK_Acceptor acceptor_; // Socket acceptor endpoint.
};
#endif /* _LOGGING_SERVER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -