diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-10-11 00:57:08 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-10-11 00:57:08 +0000 |
commit | 6345981a237967e0ba2849ded171c85af0c91eaa (patch) | |
tree | e4147344f26f8064491ad6f2d5eb847f32307e10 /protocols/ace/RMCast/RMCast_Sequencer.h | |
parent | 6ef8157e014a7204e1d2439fdfa28330a35bc579 (diff) | |
download | ATCD-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.h | 54 |
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 */ |