summaryrefslogtreecommitdiff
path: root/ace/SOCK_Dgram.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/SOCK_Dgram.h')
-rw-r--r--ace/SOCK_Dgram.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/ace/SOCK_Dgram.h b/ace/SOCK_Dgram.h
new file mode 100644
index 00000000000..7760a9e6356
--- /dev/null
+++ b/ace/SOCK_Dgram.h
@@ -0,0 +1,92 @@
+/* -*- C++ -*- */
+// $Id$
+
+
+// ===========================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// SOCK_Dgram.h
+//
+// = AUTHOR
+// Doug Schmidt
+//
+// ===========================================================================
+
+#if !defined (ACE_SOCK_DGRAM_H)
+#define ACE_SOCK_DGRAM_H
+
+#include "ace/SOCK.h"
+#include "ace/Addr.h"
+
+class ACE_Export ACE_SOCK_Dgram : public ACE_SOCK
+ // = TITLE
+ // Defines the member functions for the ACE_SOCK datagram
+ // abstraction.
+{
+public:
+ // = Initialization routines.
+ ACE_SOCK_Dgram (void);
+ // Default constructor.
+
+ ACE_SOCK_Dgram (const ACE_Addr &local,
+ int protocol_family = PF_INET,
+ int protocol = 0);
+ // Initiate a socket dgram.
+
+ int open (const ACE_Addr &local,
+ int protocol_family = PF_INET,
+ int protocol = 0);
+ // Initiate a socket dgram.
+
+ // = Data transfer routines.
+ ssize_t send (const void *buf,
+ size_t n,
+ const ACE_Addr &addr,
+ int flags = 0) const;
+ // Send an <n> byte <buf> to the datagram socket (uses sendto(3)).
+
+ ssize_t recv (void *buf,
+ size_t n,
+ ACE_Addr &addr,
+ int flags = 0) const;
+ // Receive an <n> byte <buf> from the datagram socket (uses
+ // recvfrom(3)).
+
+#if defined (ACE_HAS_MSG)
+ ssize_t send (const iovec iov[],
+ size_t n,
+ const ACE_Addr &addr,
+ int flags = 0) const;
+ // Send an <iovec> of size <n> to the datagram socket (uses
+ // sendmsg(3)).
+
+ ssize_t recv (iovec iov[],
+ size_t n,
+ ACE_Addr &addr,
+ int flags = 0) const;
+ // Recv an <iovec> of size <n> to the datagram socket (uses
+ // recvmsg(3)).
+#endif /* ACE_HAS_MSG */
+
+ void dump (void) const;
+ // Dump the state of an object.
+
+ ACE_ALLOC_HOOK_DECLARE;
+ // Declare the dynamic allocation hooks.
+
+protected:
+ int shared_open (const ACE_Addr &local,
+ int protocol_family);
+ // Open is shared by this and by <LSOCK_Dgram>.
+
+private:
+ int get_remote_addr (ACE_Addr &) const;
+ // Do not allow this function to percolate up to this interface...
+};
+
+#include "ace/SOCK_Dgram.i"
+
+#endif /* ACE_SOCK_DGRAM_H */