summaryrefslogtreecommitdiff
path: root/protocols/ace/RMCast/RMCast_Sequencer.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_Sequencer.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_Sequencer.h')
-rw-r--r--protocols/ace/RMCast/RMCast_Sequencer.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/protocols/ace/RMCast/RMCast_Sequencer.h b/protocols/ace/RMCast/RMCast_Sequencer.h
new file mode 100644
index 00000000000..321d778853e
--- /dev/null
+++ b/protocols/ace/RMCast/RMCast_Sequencer.h
@@ -0,0 +1,54 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// ace/RMCast
+//
+// = AUTHOR
+// Carlos O'Ryan <coryan@uci.edu>
+//
+// ============================================================================
+
+#ifndef ACE_RMCAST_SEQUENCER_H
+#define ACE_RMCAST_SEQUENCER_H
+#include "ace/pre.h"
+
+#include "RMCast_Module.h"
+#include "ace/Synch.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+/// Assign sequence numbers to outgoing messages
+/**
+ * On the sender side we must assign sequence numbers to the messages
+ * <B>before</B> they are put in the retransmission queue.
+ */
+class ACE_RMCast_Export ACE_RMCast_Sequencer : public ACE_RMCast_Module
+{
+public:
+ /// Constructor
+ ACE_RMCast_Sequencer (void);
+
+ /// Destructor
+ virtual ~ACE_RMCast_Sequencer (void);
+
+ virtual int data (ACE_RMCast::Data &);
+
+protected:
+ /// Create the sequence numbers
+ ACE_UINT32 sequence_number_generator_;
+
+ /// Synchronization
+ ACE_SYNCH_MUTEX mutex_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "RMCast_Sequencer.i"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+#endif /* ACE_RMCAST_SEQUENCER_H */