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_Fork.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_Fork.h')
-rw-r--r-- | protocols/ace/RMCast/RMCast_Fork.h | 55 |
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 */ |