00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TAO_TRANSPORT_QUEUEING_STRATEGIES_H
00017 #define TAO_TRANSPORT_QUEUEING_STRATEGIES_H
00018
00019 #include "ace/pre.h"
00020
00021 #include "tao/TAO_Export.h"
00022
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif
00026
00027 #include "tao/orbconf.h"
00028 #include "tao/Basic_Types.h"
00029
00030 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00031 class ACE_Time_Value;
00032 ACE_END_VERSIONED_NAMESPACE_DECL
00033
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035
00036 class TAO_Stub;
00037
00038 namespace TAO
00039 {
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 class TAO_Export Transport_Queueing_Strategy
00050 {
00051 public:
00052
00053 virtual ~Transport_Queueing_Strategy (void);
00054
00055
00056 virtual bool must_queue (bool queue_empty) const = 0;
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 virtual bool buffering_constraints_reached (
00072 TAO_Stub *stub,
00073 size_t msg_count,
00074 size_t total_bytes,
00075 bool &must_flush,
00076 const ACE_Time_Value ¤t_deadline,
00077 bool &set_timer,
00078 ACE_Time_Value &interval) const = 0;
00079 };
00080
00081
00082
00083
00084
00085
00086 class Flush_Transport_Queueing_Strategy : public Transport_Queueing_Strategy
00087 {
00088 public:
00089 virtual bool must_queue (bool queue_empty) const;
00090
00091 virtual bool buffering_constraints_reached (
00092 TAO_Stub *stub,
00093 size_t msg_count,
00094 size_t total_bytes,
00095 bool &must_flush,
00096 const ACE_Time_Value ¤t_deadline,
00097 bool &set_timer,
00098 ACE_Time_Value &interval) const;
00099 };
00100 }
00101
00102 TAO_END_VERSIONED_NAMESPACE_DECL
00103
00104 #include "ace/post.h"
00105
00106 #endif