00001 // file : ace/RMCast/Stack.h 00002 // author : Boris Kolpackov <boris@kolpackov.net> 00003 // cvs-id : $Id: Stack.h 64364 2005-03-02 19:34:13Z boris $ 00004 00005 #ifndef ACE_RMCAST_STACK_H 00006 #define ACE_RMCAST_STACK_H 00007 00008 #include "Protocol.h" 00009 00010 namespace ACE_RMCast 00011 { 00012 struct Out_Element 00013 { 00014 virtual 00015 ~Out_Element (); 00016 00017 Out_Element (); 00018 00019 virtual void 00020 out_stop (); 00021 00022 virtual void 00023 out_start (Out_Element* out); 00024 00025 virtual void 00026 send (Message_ptr m); 00027 00028 protected: 00029 Out_Element* out_; 00030 }; 00031 00032 00033 struct In_Element 00034 { 00035 virtual 00036 ~In_Element (); 00037 00038 In_Element (); 00039 00040 virtual void 00041 in_stop (); 00042 00043 virtual void 00044 in_start (In_Element* in); 00045 00046 virtual void 00047 recv (Message_ptr m); 00048 00049 protected: 00050 In_Element* in_; 00051 }; 00052 00053 00054 struct Element : In_Element, Out_Element 00055 { 00056 }; 00057 } 00058 00059 #endif // ACE_RMCAST_STACK_H