00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef CEYLAN_IP_ADDRESS_V_FOUR_H_
00028 #define CEYLAN_IP_ADDRESS_V_FOUR_H_
00029
00030
00031 #include "CeylanIPAddress.h"
00032 #include "CeylanTypes.h"
00033
00034 #include <string>
00035
00036
00037
00038 namespace Ceylan
00039 {
00040
00041
00042 namespace Network
00043 {
00044
00045
00046
00048 class CEYLAN_DLL IPAddressvFour: public IPAddress
00049 {
00050
00051
00052 public:
00053
00054
00055
00056
00057 typedef Ceylan::Uint8 IPvFourComponent ;
00058
00059
00060
00071 IPAddressvFour(
00072 IPvFourComponent first,
00073 IPvFourComponent second,
00074 IPvFourComponent third,
00075 IPvFourComponent fourth ) ;
00076
00077
00078
00087 explicit IPAddressvFour( const std::string & IPString ) ;
00088
00089
00090
00092 virtual ~IPAddressvFour() throw() ;
00093
00094
00095
00100 virtual NetworkAddressType getType() const ;
00101
00102
00103
00118 virtual const std::string toString(
00119 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00120
00121
00122
00130 static bool IsValidIPv4( const std::string & ipString ) ;
00131
00132
00133
00134
00135 protected:
00136
00137
00138
00145 virtual void validate() const ;
00146
00147
00149 IPvFourComponent _first ;
00150
00151
00153 IPvFourComponent _second ;
00154
00155
00157 IPvFourComponent _third ;
00158
00159
00161 IPvFourComponent _fourth ;
00162
00163
00164
00165
00166 private:
00167
00168
00169
00178 IPAddressvFour( const IPAddressvFour & source ) ;
00179
00180
00181
00190 IPAddressvFour & operator = ( const IPAddressvFour & source ) ;
00191
00192
00193 } ;
00194
00195
00196 }
00197
00198
00199 }
00200
00201
00202 #endif // CEYLAN_IP_ADDRESS_V_FOUR_H_
00203