summaryrefslogtreecommitdiff
path: root/ace/adapter/ace/INET_Addr.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/adapter/ace/INET_Addr.h')
-rw-r--r--ace/adapter/ace/INET_Addr.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/ace/adapter/ace/INET_Addr.h b/ace/adapter/ace/INET_Addr.h
new file mode 100644
index 00000000000..052077e0b2b
--- /dev/null
+++ b/ace/adapter/ace/INET_Addr.h
@@ -0,0 +1,117 @@
+// $Id$
+
+#ifndef ACE_ADAPTER_INET_ADDR_H
+#define ACE_ADAPTER_INET_ADDR_H
+#include "ace/pre.h"
+
+#include "../../INET_Addr.h"
+
+class ACE_INET_Addr_W : public ACE_INET_Addr
+{
+public:
+ ACE_INET_Addr_W (void)
+ {}
+
+ ACE_INET_Addr_W (const ACE_INET_Addr &addr)
+ : ACE_INET_Addr (addr)
+ {}
+
+ ACE_INET_Addr_W (const sockaddr_in *sa, int len)
+ : ACE_INET_Addr (sa, len)
+ {}
+
+ ACE_INET_Addr_W (u_short port_number,
+ const wchar_t host_name[])
+ : ACE_INET_Addr (port_number, ACE_TEXT_WCHAR_TO_CHAR (host_name))
+ {}
+
+ ACE_EXPLICIT ACE_INET_Addr_W (const wchar_t address[])
+ : ACE_INET_Addr (ACE_TEXT_WCHAR_TO_CHAR (address))
+ {}
+
+ ACE_INET_Addr_W (u_short port_number,
+ ACE_UINT32 ip_addr = INADDR_ANY)
+ : ACE_INET_Addr (port_number, ip_addr)
+ {}
+
+ ACE_INET_Addr_W (const wchar_t port_name[],
+ const wchar_t host_name[],
+ const wchar_t protocol[] = L"tcp")
+ : ACE_INET_Addr (ACE_TEXT_WCHAR_TO_CHAR (port_name),
+ ACE_TEXT_WCHAR_TO_CHAR (host_name),
+ ACE_TEXT_WCHAR_TO_CHAR (protocol))
+ {}
+
+ ACE_INET_Addr_W (const wchar_t port_name[],
+ ACE_UINT32 ip_addr,
+ const wchar_t protocol[] = L"tcp")
+ : ACE_INET_Addr (ACE_TEXT_WCHAR_TO_CHAR (port_name),
+ ip_addr,
+ ACE_TEXT_WCHAR_TO_CHAR (protocol))
+ {}
+
+ ~ACE_INET_Addr_W (void)
+ {}
+
+ int set (u_short port_number,
+ const wchar_t host_name[],
+ int encode = 1)
+ { return ACE_INET_Addr::set (port_number, ACE_TEXT_WCHAR_TO_CHAR (host_name), encode); }
+
+ int set (const wchar_t port_name[],
+ const wchar_t host_name[],
+ const wchar_t protocol[] = L"tcp")
+ {
+ return ACE_INET_Addr::set (ACE_TEXT_WCHAR_TO_CHAR (port_name),
+ ACE_TEXT_WCHAR_TO_CHAR (host_name),
+ ACE_TEXT_WCHAR_TO_CHAR (protocol));
+ }
+
+ int set (const wchar_t port_name[],
+ ACE_UINT32 ip_addr,
+ const wchar_t protocol[] = L"tcp")
+ {
+ return ACE_INET_Addr::set (ACE_TEXT_WCHAR_TO_CHAR (port_name),
+ ip_addr,
+ ACE_TEXT_WCHAR_TO_CHAR (protocol));
+ }
+
+ int set (const wchar_t addr[])
+ { return ACE_INET_Addr::set (ACE_TEXT_WCHAR_TO_CHAR (addr)); }
+
+ virtual int addr_to_string (wchar_t buffer[],
+ size_t size,
+ int ipaddr_format = 1) const
+ {
+ char *cbuf;
+ ACE_NEW_RETURN (cbuf, char[size], -1);
+
+ int result = ACE_INET_Addr::addr_to_string (cbuf, size, ipaddr_format);
+ ACE_OS::strcpy (buffer, ACE_TEXT_CHAR_TO_WCHAR (cbuf));
+ delete [] cbuf;
+ return result;
+ }
+
+ virtual int string_to_addr (const wchar_t address[])
+ { return ACE_INET_Addr::string_to_addr (ACE_TEXT_WCHAR_TO_CHAR (address)); }
+
+ int get_host_name (wchar_t hostname[], size_t hostnamelen) const
+ {
+ char *cbuf;
+ ACE_NEW_RETURN (cbuf, char[hostnamelen], -1);
+
+ int result = ACE_INET_Addr::get_host_name (cbuf, hostnamelen);
+ ACE_OS::strcpy (hostname, ACE_TEXT_CHAR_TO_WCHAR (cbuf));
+ delete [] cbuf;
+ return result;
+ }
+
+ const wchar_t *get_host_name (void) const
+ { return ACE::strnew (ACE_TEXT_CHAR_TO_WCHAR (ACE_INET_Addr::get_host_name ())); }
+
+ const wchar_t *get_host_addr (void) const
+ { return ACE::strnew (ACE_TEXT_CHAR_TO_WCHAR (ACE_INET_Addr::get_host_addr ())); }
+};
+
+#include "ace/post.h"
+#endif /* ACE_ADAPTER_INET_ADDR_H */