00001 // file : ace/RMCast/Flow.h 00002 // author : Boris Kolpackov <boris@kolpackov.net> 00003 // cvs-id : Flow.h,v 1.1 2005/07/11 18:50:23 boris Exp 00004 00005 #ifndef ACE_RMCAST_FLOW_H 00006 #define ACE_RMCAST_FLOW_H 00007 00008 #include "Stack.h" 00009 #include "Protocol.h" 00010 #include "Bits.h" 00011 #include "Parameters.h" 00012 00013 namespace ACE_RMCast 00014 { 00015 class Flow : public Element 00016 { 00017 public: 00018 Flow (Parameters const& params); 00019 00020 public: 00021 virtual void 00022 send (Message_ptr m); 00023 00024 virtual void 00025 recv (Message_ptr m); 00026 00027 private: 00028 Parameters const& params_; 00029 00030 Mutex mutex_; 00031 ACE_Time_Value nak_time_; 00032 00033 // Throughput sampling. 00034 // 00035 ACE_Time_Value sample_start_time_; 00036 unsigned long sample_bytes_; 00037 double current_tput_; 00038 double cap_tput_; 00039 }; 00040 } 00041 00042 00043 #endif // ACE_RMCAST_FLOW_H