summaryrefslogtreecommitdiff
path: root/protocols/ace/RMCast/RMCast_Fork.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-11 00:57:08 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-11 00:57:08 +0000
commit6345981a237967e0ba2849ded171c85af0c91eaa (patch)
treee4147344f26f8064491ad6f2d5eb847f32307e10 /protocols/ace/RMCast/RMCast_Fork.h
parent6ef8157e014a7204e1d2439fdfa28330a35bc579 (diff)
downloadATCD-6345981a237967e0ba2849ded171c85af0c91eaa.tar.gz
ChangeLogTag:Tue Oct 10 17:25:32 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'protocols/ace/RMCast/RMCast_Fork.h')
-rw-r--r--protocols/ace/RMCast/RMCast_Fork.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/protocols/ace/RMCast/RMCast_Fork.h b/protocols/ace/RMCast/RMCast_Fork.h
new file mode 100644
index 00000000000..5fd216d68f3
--- /dev/null
+++ b/protocols/ace/RMCast/RMCast_Fork.h
@@ -0,0 +1,55 @@
+/* -*- C++ -*- */
+// $Id$
+
+#ifndef ACE_RMCAST_FORK_H
+#define ACE_RMCAST_FORK_H
+#include "ace/pre.h"
+
+#include "RMCast_Module.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+/// Fork messages to multiple destinations
+/**
+ * In some instances the messages must be sent to multiple
+ * destinations, this module is a generic component to duplicate such
+ * messages.
+ */
+class ACE_RMCast_Export ACE_RMCast_Fork : public ACE_RMCast_Module
+{
+public:
+ //! Constructor
+ ACE_RMCast_Fork (void);
+
+ //! Destructor
+ virtual ~ACE_RMCast_Fork (void);
+
+ /// Set the control module, all incoming control messages go to it
+ void secondary (ACE_RMCast_Module *module);
+
+ /// Return the current control module
+ ACE_RMCast_Module *secondary (void) const;
+
+ virtual int open (void);
+ virtual int close (void);
+ virtual int data (ACE_RMCast::Data &);
+ virtual int poll (ACE_RMCast::Poll &);
+ virtual int ack_join (ACE_RMCast::Ack_Join &);
+ virtual int ack_leave (ACE_RMCast::Ack_Leave &);
+ virtual int ack (ACE_RMCast::Ack &);
+ virtual int join (ACE_RMCast::Join &);
+ virtual int leave (ACE_RMCast::Leave &);
+
+private:
+ /// The control module
+ ACE_RMCast_Module *secondary_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "RMCast_Fork.i"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+#endif /* ACE_RMCAST_FORK_H */