summaryrefslogtreecommitdiff
path: root/protocols/ace/RMCast/RMCast_Fragment.h
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-06-17 00:39:09 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-06-17 00:39:09 +0000
commit9858d5181a243af42a9a15048e0bf7db4928f94c (patch)
tree8c598bbe84a843f5eb9b5fd895ba1acafa128f47 /protocols/ace/RMCast/RMCast_Fragment.h
parent6107fcba7504cca59cc0b9d85286b73507e3897e (diff)
downloadATCD-9858d5181a243af42a9a15048e0bf7db4928f94c.tar.gz
ChangeLogTag:Fri Jun 16 17:30:18 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'protocols/ace/RMCast/RMCast_Fragment.h')
-rw-r--r--protocols/ace/RMCast/RMCast_Fragment.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/protocols/ace/RMCast/RMCast_Fragment.h b/protocols/ace/RMCast/RMCast_Fragment.h
new file mode 100644
index 00000000000..8aa7024770e
--- /dev/null
+++ b/protocols/ace/RMCast/RMCast_Fragment.h
@@ -0,0 +1,68 @@
+// $Id$
+
+// ============================================================================
+//
+// = DESCRIPTION
+// The fragmentation task for the reliable multicast library
+//
+// = AUTHOR
+// Carlos O'Ryan <coryan@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef ACE_RMCAST_FRAGMENT_H
+#define ACE_RMCAST_FRAGMENT_H
+#include "ace/pre.h"
+
+#include "RMCast_Export.h"
+#include "ace/Task.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#ifndef ACE_RMCAST_DEFAULT_FRAGMENT_SIZE
+# define ACE_RMCAST_DEFAULT_FRAGMENT_SIZE 1024
+#endif /* ACE_RMCAST_DEFAULT_FRAGMENT_SIZE */
+
+template <ACE_SYNCH_DECL>
+class ACE_RMCast_Export ACE_RMCast_Fragment : public ACE_Task<ACE_SYNCH_USE>
+{
+public:
+ ACE_RMCast_Fragment (ACE_Thread_Manager *thr_mgr = 0,
+ ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0);
+ // Constructor
+
+ virtual ~ACE_RMCast_Fragment (void);
+ // Destructor
+
+ size_t max_fragment_size (void) const;
+ // Accessor for the max_fragment size.
+ // There is no modifier, the maximum fragment size is obtained using
+ // feedback from the lower layer (transport?)
+
+ // = The ACE_Task methods
+ int put (ACE_Message_Block *, ACE_Time_Value *timeout = 0);
+
+private:
+ size_t max_fragment_size_;
+
+ ACE_SYNCH_MUTEX_T mutex_;
+ ACE_UINT32 sequence_number_generator_;
+ // The sequence number generator
+};
+
+#if defined (__ACE_INLINE__)
+#include "RMCast_Fragment.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "RMCast_Fragment.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("RMCast_Fragment.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include "ace/post.h"
+#endif /* ACE_RMCAST_FRAGMENT_H */