2 // @file realserver_element.h
3 // @brief realserver data prototype
5 // copyright (c) sdy corporation. 2008
6 // mail: n dot nakai at sdy dot co dot jp
8 // Distributed under the Boost Software License, Version 1.0.(See accompanying
9 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
11 #ifndef REALSERVER_ELEMENT_H
12 #define REALSERVER_ELEMENT_H
13 #include <boost/asio.hpp>
17 class realserver_element{
19 boost::asio::ip::tcp::endpoint tcp_endpoint;
20 boost::asio::ip::udp::endpoint udp_endpoint;
22 realserver_element() : weight(-1){}
23 realserver_element( const realserver_element& in ) : tcp_endpoint( in.tcp_endpoint ) ,
24 udp_endpoint( in.udp_endpoint ) ,
26 realserver_element& operator=( const realserver_element& elem ){
27 tcp_endpoint = elem.tcp_endpoint;
28 udp_endpoint = elem.udp_endpoint;
32 friend bool operator==( const realserver_element& rselem1, const realserver_element& rselem2 ){
33 return rselem1.tcp_endpoint == rselem2.tcp_endpoint &&
34 rselem1.udp_endpoint == rselem2.udp_endpoint &&
35 rselem1.weight == rselem2.weight;
38 friend bool operator!=( const realserver_element& rselem1, const realserver_element& rselem2 ){
39 return rselem1.tcp_endpoint != rselem2.tcp_endpoint ||
40 rselem1.udp_endpoint != rselem2.udp_endpoint ||
41 rselem1.weight != rselem2.weight;
44 friend bool operator<( const realserver_element& rselem1, const realserver_element& rselem2 ){
45 if( rselem1.tcp_endpoint < rselem2.tcp_endpoint ) return true;
46 if( rselem1.tcp_endpoint != rselem2.tcp_endpoint ) return false;
47 return rselem1.weight < rselem2.weight;
52 #endif //REALSERVER_ELEMENT