Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

RMCast_Module.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 // $Id: RMCast_Module.h,v 1.1.1.1 2001/12/04 14:33:17 chad Exp $
00003 
00004 // ============================================================================
00005 //
00006 // = LIBRARY
00007 //    ace
00008 //
00009 // = FILENAME
00010 //    RMCast_Module.h
00011 //
00012 // = AUTHOR
00013 //    Carlos O'Ryan <coryan@uci.edu>
00014 //
00015 // ============================================================================
00016 
00017 #ifndef ACE_RMCAST_MODULE_H
00018 #define ACE_RMCAST_MODULE_H
00019 #include "ace/pre.h"
00020 
00021 #include "RMCast.h"
00022 
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif /* ACE_LACKS_PRAGMA_ONCE */
00026 
00027 class ACE_Message_Block;
00028 class ACE_Time_Value;
00029 
00030 //! Reliable Multicast Module
00031 /*!
00032   The reliable multicast protocol is implemented as a stack of
00033   "Modules" each one performing one specific task.  In short, this is
00034   an instance of the pipes-and-filters architectural pattern.
00035 */
00036 class ACE_RMCast_Export ACE_RMCast_Module
00037 {
00038 public:
00039   //! Constructor
00040   ACE_RMCast_Module (void);
00041 
00042   //! Destructor
00043   virtual ~ACE_RMCast_Module (void);
00044 
00045   //! Modifier for the next element in the stack
00046   virtual int next (ACE_RMCast_Module *next);
00047 
00048   //! Accesor for the next element in the stack
00049   virtual ACE_RMCast_Module* next (void) const;
00050 
00051   //! Initialize the module, setting up the next module
00052   virtual int open (void);
00053 
00054   //! Close the module.
00055   virtual int close (void);
00056 
00057   //! Push data through the stack
00058   virtual int data (ACE_RMCast::Data &);
00059 
00060   //! Push a polling request through the stack
00061   virtual int poll (ACE_RMCast::Poll &);
00062 
00063   //! Push a message to ack a join request through the stack
00064   virtual int ack_join (ACE_RMCast::Ack_Join &);
00065 
00066   //! Push a message to ack a leave request through the stack
00067   virtual int ack_leave (ACE_RMCast::Ack_Leave &);
00068 
00069   //! Push an ack mesage through the stack
00070   virtual int ack (ACE_RMCast::Ack &);
00071 
00072   //! Push a join message through the stack
00073   virtual int join (ACE_RMCast::Join &);
00074 
00075   //! Push a leave message through the stack
00076   virtual int leave (ACE_RMCast::Leave &);
00077 
00078 private:
00079   //! The next element in the stack
00080   ACE_RMCast_Module *next_;
00081 };
00082 
00083 #if defined (__ACE_INLINE__)
00084 #include "RMCast_Module.i"
00085 #endif /* __ACE_INLINE__ */
00086 
00087 #include "ace/post.h"
00088 #endif /* ACE_RMCAST_MODULE_H */

Generated on Mon Jun 16 13:12:36 2003 for ACE_RMCast by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002