]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/sckaddr.h
added cmdline.h/.cpp to the makefiles
[wxWidgets.git] / include / wx / sckaddr.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: sckaddr.h
3// Purpose: Network address classes
4// Author: Guilhem Lavaux
5// Modified by:
6// Created: 26/04/1997
7// RCS-ID: $Id$
8// Copyright: (c) 1997, 1998 Guilhem Lavaux
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_NETWORK_ADDRESS_H
13#define _WX_NETWORK_ADDRESS_H
14
15#ifdef __GNUG__
16#pragma interface
17#endif
18
19#include "wx/defs.h"
20
21#if wxUSE_SOCKETS
22
23#include "wx/string.h"
24#include "wx/gsocket.h"
25
26
27class WXDLLEXPORT wxSockAddress : public wxObject {
28 DECLARE_ABSTRACT_CLASS(wxSockAddress)
29public:
30 typedef enum { IPV4=1, IPV6=2, UNIX=3 } Addr;
31
32 wxSockAddress();
33 virtual ~wxSockAddress();
34
35 virtual void Clear();
36 virtual int Type() = 0;
37
38 GAddress *GetAddress() const { return m_address; }
39 void SetAddress(GAddress *address);
40 const wxSockAddress& operator =(const wxSockAddress& addr);
41
42 void CopyObject(wxObject& dest) const;
43
44protected:
45 GAddress *m_address;
46};
47
48class WXDLLEXPORT wxIPV4address : public wxSockAddress {
49 DECLARE_DYNAMIC_CLASS(wxIPV4address)
50public:
51 wxIPV4address();
52 virtual ~wxIPV4address();
53
54 bool Hostname(const wxString& name);
55 bool Hostname(unsigned long addr);
56 bool Service(const wxString& name);
57 bool Service(unsigned short port);
58 bool LocalHost();
59
60 wxString Hostname();
61 unsigned short Service();
62
63 inline int Type() { return wxSockAddress::IPV4; }
64};
65
66#ifdef ENABLE_IPV6
67class WXDLLEXPORT wxIPV6address : public wxSockAddress {
68 DECLARE_DYNAMIC_CLASS(wxIPV6address)
69private:
70 struct sockaddr_in6 *m_addr;
71public:
72 wxIPV6address();
73 ~wxIPV6address();
74
75 bool Hostname(const wxString& name);
76 bool Hostname(unsigned char addr[16]);
77 bool Service(const wxString& name);
78 bool Service(unsigned short port);
79 bool LocalHost();
80
81 wxString Hostname() const;
82 unsigned short Service() const;
83
84 inline int Type() { return wxSockAddress::IPV6; }
85};
86#endif
87
88#ifdef __UNIX__
89#include <sys/socket.h>
90#ifndef __VMS__
91# include <sys/un.h>
92#endif
93
94class WXDLLEXPORT wxUNIXaddress : public wxSockAddress {
95 DECLARE_DYNAMIC_CLASS(wxUNIXaddress)
96private:
97 struct sockaddr_un *m_addr;
98public:
99 wxUNIXaddress();
100 ~wxUNIXaddress();
101
102 void Filename(const wxString& name);
103 wxString Filename();
104
105 inline int Type() { return wxSockAddress::UNIX; }
106};
107#endif
108 // __UNIX__
109
110#endif
111 // wxUSE_SOCKETS
112
113#endif
114 // _WX_NETWORK_ADDRESS_H