EPICS Base  7.0.8.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ipAddrToAsciiAsynchronous.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2002 The University of Chicago, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * SPDX-License-Identifier: EPICS
7 * EPICS Base is distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 
70 /*
71  * Author Jeffrey O. Hill
73  */
74 
75 #ifndef ipAddrToAsciiAsynchronous_h
76 #define ipAddrToAsciiAsynchronous_h
77 
78 #include "osiSock.h"
79 #include "libComAPI.h"
80 
88 class LIBCOM_API ipAddrToAsciiCallBack {
89 public:
91  /*
92  * \param pHostName The converted ASCII name */
93  virtual void transactionComplete ( const char * pHostName ) = 0;
94 
97  virtual void show ( unsigned level ) const;
98 
99  virtual ~ipAddrToAsciiCallBack () = 0;
100 };
101 
104 class LIBCOM_API ipAddrToAsciiTransaction {
105 public:
107  virtual void release () = 0;
108 
115  virtual void ipAddrToAscii ( const osiSockAddr & addrIn, ipAddrToAsciiCallBack & cbIn ) = 0;
116 
120  virtual osiSockAddr address () const = 0;
121 
129  virtual void show ( unsigned level ) const = 0;
130 protected:
131  virtual ~ipAddrToAsciiTransaction () = 0;
132 };
133 
135 class LIBCOM_API ipAddrToAsciiEngine {
136 public:
138  virtual void release () = 0;
139 
145  virtual ipAddrToAsciiTransaction & createTransaction () = 0;
146 
154  virtual void show ( unsigned level ) const = 0;
155 
161  static ipAddrToAsciiEngine & allocate ();
162 protected:
163  virtual ~ipAddrToAsciiEngine () = 0;
164 public:
165 #ifdef EPICS_PRIVATE_API
166  static void cleanup();
167 #endif
168 };
169 
170 #endif // ifdef ipAddrToAsciiAsynchronous_h
Platform independent socket support library API.
Union to switch between sockaddr_in and sockaddr.
Definition: osiSock.h:323
Users implement this virtual class to use ipAddrToAsciiTransaction.
Class which manages creating transactions for converting ipAddr's to ASCII.