diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:11 +0000 |
commit | 8008dd09ccf88d4edef237a184a698cac42f2952 (patch) | |
tree | da50d054f9c761c3f6a5923f6979e93306c56d68 /TAO/tao/Transport_Queueing_Strategies.h | |
parent | 13d6e89af439164c0ade48e6f5c3e9b3f971e8c9 (diff) | |
download | ATCD-8008dd09ccf88d4edef237a184a698cac42f2952.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/tao/Transport_Queueing_Strategies.h')
-rw-r--r-- | TAO/tao/Transport_Queueing_Strategies.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/TAO/tao/Transport_Queueing_Strategies.h b/TAO/tao/Transport_Queueing_Strategies.h deleted file mode 100644 index 56ba66149ee..00000000000 --- a/TAO/tao/Transport_Queueing_Strategies.h +++ /dev/null @@ -1,185 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Transport_Queueing_Strategies.h - * - * $Id$ - * - * Queueing strategies for the ORB Messaging layer. - * - * @author Irfan Pyarali - */ -//============================================================================= - - -#ifndef TAO_TRANSPORT_QUEUEING_STRATEGIES_H -#define TAO_TRANSPORT_QUEUEING_STRATEGIES_H - -#include /**/ "ace/pre.h" - -#include "tao/TAO_Export.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -#include "tao/orbconf.h" -#include "tao/Basic_Types.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL -class ACE_Time_Value; -ACE_END_VERSIONED_NAMESPACE_DECL - -TAO_BEGIN_VERSIONED_NAMESPACE_DECL - -class TAO_Stub; - -namespace TAO -{ - struct BufferingConstraint; -} - -namespace TimeBase -{ - typedef CORBA::ULongLong TimeT; -} - -namespace TAO -{ - /// Define the interface for the Queueing Strategy - /** - * The low-level I/O components in the ORB use this strategy to - * determine when messages must be queued, immediately sent or - * flushed. - * - * The strategy isolates this low-level components from the higher - * level strategies used by the application developer. - */ - class Transport_Queueing_Strategy - { - public: - /// Destructor - virtual ~Transport_Queueing_Strategy (void); - - /// Return true if a message must be queued - virtual bool must_queue (bool queue_empty) const = 0; - - /// Return true if it is time to start - /** - * @param stub The object used to make the request, this is used to - * obtain the policies currently in effect for the request - * @param msg_count The number of messages currently queued - * @param total_bytes Number of bytes currently queued - * @param set_timer Returns true if a timer should be set to drain the - * queue - * @param interval If set_timer returns 1, this parameter contains - * the timer interval - * @param must_flush Is set to true if things must be flushed at this - * moment - */ - virtual bool buffering_constraints_reached ( - TAO_Stub *stub, - size_t msg_count, - size_t total_bytes, - bool &must_flush, - const ACE_Time_Value ¤t_deadline, - bool &set_timer, - ACE_Time_Value &interval) const = 0; - }; - - class Default_Transport_Queueing_Strategy : public Transport_Queueing_Strategy - { - public: - virtual bool must_queue (bool queue_empty) const; - - virtual bool buffering_constraints_reached ( - TAO_Stub *stub, - size_t msg_count, - size_t total_bytes, - bool &must_flush, - const ACE_Time_Value ¤t_deadline, - bool &set_timer, - ACE_Time_Value &interval) const; - }; - - /** - * This strategy doesn't not queue by default, but when a message is queued - * we always flush it to the transport. This is used for oneways with - * SYNC_WITH_TRANSPORT, SYNC_WITH_SERVER and SYNC_WITH_TARGET - */ - class Flush_Transport_Queueing_Strategy : public Transport_Queueing_Strategy - { - public: - virtual bool must_queue (bool queue_empty) const; - - virtual bool buffering_constraints_reached ( - TAO_Stub *stub, - size_t msg_count, - size_t total_bytes, - bool &must_flush, - const ACE_Time_Value ¤t_deadline, - bool &set_timer, - ACE_Time_Value &interval) const; - }; - - #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) - - class Eager_Transport_Queueing_Strategy : public Transport_Queueing_Strategy - { - public: - virtual bool must_queue (bool queue_empty) const; - - virtual bool buffering_constraints_reached ( - TAO_Stub *stub, - size_t msg_count, - size_t total_bytes, - bool &must_flush, - const ACE_Time_Value ¤t_deadline, - bool &set_timer, - ACE_Time_Value &new_deadline) const; - - private: - /// Check if the buffering constraint includes any timeouts and - /// compute the right timeout interval if needed. - /** - * @param buffering_constraint The constraints defined by the - * application - * @param current_deadline The current deadline - * @param set_timer Return true if the timer should be set - * @param new_deadline Return the timer interval value - * - * @return Returns true if the deadline has already expired and - * flushing must commence immediately. If the function - * returns false then flushing may need to be delayed, use @c - * set_timer and - */ - bool timer_check (const TAO::BufferingConstraint &buffering_constraint, - const ACE_Time_Value ¤t_deadline, - bool &set_timer, - ACE_Time_Value &new_deadline) const; - - /// Convert from standard CORBA time units to seconds/microseconds. - ACE_Time_Value time_conversion (const TimeBase::TimeT &time) const; - }; - - /// Delay the buffering decision until the transport blocks - /** - * If the queue is empty the transport will try to send immediately. - */ - class Delayed_Transport_Queueing_Strategy - : public Eager_Transport_Queueing_Strategy - { - public: - virtual bool must_queue (bool queue_empty) const; - }; - - #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */ - -} - -TAO_END_VERSIONED_NAMESPACE_DECL - -#include /**/ "ace/post.h" - -#endif /* TAO_TRANSPORT_QUEUEING_STRATEGY_H */ |