diff options
Diffstat (limited to 'ACE/apps/JAWS3/jaws3/Datagram.h')
-rw-r--r-- | ACE/apps/JAWS3/jaws3/Datagram.h | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/ACE/apps/JAWS3/jaws3/Datagram.h b/ACE/apps/JAWS3/jaws3/Datagram.h new file mode 100644 index 00000000000..0f6b7c59a34 --- /dev/null +++ b/ACE/apps/JAWS3/jaws3/Datagram.h @@ -0,0 +1,139 @@ +/* -*- c++ -*- */ +// $Id$ + +#ifndef JAWS_DATAGRAM_H +#define JAWS_DATAGRAM_H + +#include "ace/Addr.h" +#include "ace/Synch.h" +#include "ace/Singleton.h" +#include "ace/SOCK_Dgram.h" + +#include "jaws3/Export.h" +#include "jaws3/Event_Completer.h" + +class JAWS_Export JAWS_Datagram_Impl +{ +public: + + virtual ~JAWS_Datagram_Impl (void) {} + + virtual void accept ( const ACE_Addr &local_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + + virtual void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + // ADDR_ANY is assumed for the local access point. + + virtual void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , const ACE_Addr &local_sap + , JAWS_Event_Completer *completer + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + // Use the specified local access point. + + virtual void accept ( const ACE_Addr &local_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + + virtual void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + // ADDR_ANY is assumed for the local access point. + + virtual void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , const ACE_Addr &local_sap + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ) = 0; + // The address to new_dgram is passed back as the data member of + // the JAWS_Event_Result that is returned to the completer. + // Use the specified local access point. + +}; + + +class JAWS_Export JAWS_Datagram +{ +public: + + JAWS_Datagram (JAWS_Datagram_Impl *impl = 0); + + static JAWS_Datagram * instance (void) + { + return ACE_Singleton<JAWS_Datagram, ACE_SYNCH_MUTEX>::instance (); + } + + void accept ( const ACE_Addr &local_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , const ACE_Addr &local_sap + , JAWS_Event_Completer *completer + , void *act = 0 + ); + + void accept ( const ACE_Addr &local_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ); + + void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ); + + void connect ( const ACE_Addr &remote_sap + , ACE_SOCK_Dgram &new_dgram + , const ACE_Addr &local_sap + , JAWS_Event_Completer *completer + , const ACE_Time_Value &timeout + , void *act = 0 + ); + +private: + + JAWS_Datagram_Impl *impl_; + +}; + +#endif /* JAWS_DATAGRAM_H */ |