Browse Source

Doxygen plNetAddress to make it less confusing.

Darryl Pogue 13 years ago
parent
commit
883ce6fcbf
  1. 12
      Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.cpp
  2. 113
      Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.h

12
Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.cpp

@ -107,11 +107,6 @@ uint32_t plNetAddress::GetHost() const
return fAddr.sin_addr.s_addr;
}
uint32_t plNetAddress::GetHostLE() const
{
return ntohl(fAddr.sin_addr.s_addr);
}
plString plNetAddress::GetHostWithPort() const
{
plStringStream ss;
@ -133,13 +128,6 @@ bool plNetAddress::SetHost(uint32_t addr)
return true;
}
bool plNetAddress::SetHostLE(uint32_t addr)
{
fAddr.sin_addr.s_addr = htonl(addr);
fAddr.sin_family = AF_INET;
return true;
}
plString plNetAddress::AsString() const
{
plStringStream ss;

113
Sources/Plasma/NucleusLib/pnNetCommon/plNetAddress.h

@ -68,46 +68,155 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
typedef sockaddr_in AddressType;
/**
* A class representing a network address endpoint, as a pair of host address
* and port number.
*
* Internally, this class stores the network address using the sockaddr_in
* structure, but provides methods to transparently get and set the host
* address and port.
*/
class plNetAddress
{
// fAddr must be first field
AddressType fAddr;
public:
/**
* Initializes an empty network address.
* All the fields of the sockaddr will be zeroed.
*/
plNetAddress();
/**
* Initializes a new network address from the given IPv4 address and port
* number.
*
* @param addr The IPv4 address as a 32-bit network byte order integer.
* @param port The port number as a 16-bit host order integer.
*/
plNetAddress(uint32_t addr, uint16_t port);
/**
* Initializes a new network address from the given hostname and port
* number.
*
* @param addr The DNS hostname of the host.
* @param port The port number as a 16-bit host order integer.
*/
plNetAddress(const char* addr, uint16_t port);
virtual ~plNetAddress(){}
bool operator==(const plNetAddress& other) const {
return (GetHost() == other.GetHost()) && (GetPort() == other.GetPort());
}
bool operator!=(const plNetAddress& other) const {
return !(*this == other);
}
/**
* Clears the address and zeros out the sockaddr fields.
*/
void Clear();
/**
* Sets the address to INADDR_ANY for binding to any host.
*/
bool SetAnyAddr();
/**
* Sets the port number to 0 to allow binding to any port.
*/
bool SetAnyPort();
/**
* Gets the port number of the host.
*
* @return The host port number.
*/
uint16_t GetPort() const;
/**
* Sets the port number of the host.
*
* @param port The port number in host byte order.
*/
bool SetPort(uint16_t port);
/**
* Gets the IPv4 address of the host as a 32-bit integer in network byte
* order (big endian).
*
* @return The IPv4 host address.
*/
uint32_t GetHost() const;
uint32_t GetHostLE() const;
/**
* Sets the IPv4 address of the host from a DNS name.
*
* @param hostname The DNS name of the host.
*/
bool SetHost(const char* hostname);
/**
* Sets the IPv4 address of the host from an unsigned 32-bit integer in
* network byte order (big endian).
*
* @param ip4addr The host IPv4 address in network byte order.
*/
bool SetHost(uint32_t ip4addr);
bool SetHostLE(uint32_t addr);
/**
* Retrieves the internal address type.
*
* @return A constant sockaddr_in.
*/
const AddressType& GetAddressInfo() const { return fAddr; }
/**
* Retrieves the internal address type.
*
* @return A sockaddr_in.
*/
AddressType& GetAddressInfo() { return fAddr; }
/**
* Returns the IPv4 address of the host as a string in 4-octet dotted
* notation.
*
* @return A string of the IPv4 host address.
*/
plString GetHostString() const;
/**
* Return the IPv4 address and port number of the host as a string in
* 4-octet dotted notation with a colon separated port.
*
* @return A string of the IPv4 host address and port number.
*/
plString GetHostWithPort() const;
/**
* Returns a string representation of the host address and port number.
*
* @return A string representation of the address.
*/
plString AsString() const;
/**
* Reads and deserializes the address from a stream.
*
* @param stream The stream from which to read the address.
*/
void Read(hsStream * stream);
/**
* Serializes and writes the address to a stream.
*
* @param stream The stream to which to write the address.
*/
void Write(hsStream * stream);
};

Loading…
Cancel
Save