⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logging_server.h

📁 ACE 学习代码。用ACE实现的学习代码
💻 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 + -