diff options
Diffstat (limited to 'TAO/tao/Wait_On_Leader_Follower.cpp')
-rw-r--r-- | TAO/tao/Wait_On_Leader_Follower.cpp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/TAO/tao/Wait_On_Leader_Follower.cpp b/TAO/tao/Wait_On_Leader_Follower.cpp new file mode 100644 index 00000000000..c9afa361710 --- /dev/null +++ b/TAO/tao/Wait_On_Leader_Follower.cpp @@ -0,0 +1,86 @@ +// $Id$ + +#include "tao/Wait_On_Leader_Follower.h" +#include "tao/LF_Follower.h" +#include "tao/Leader_Follower.h" +#include "tao/Transport.h" +#include "tao/Synch_Reply_Dispatcher.h" +#include "tao/ORB_Core.h" + +ACE_RCSID (tao, + Wait_On_Leader_Follower, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_Wait_On_Leader_Follower::TAO_Wait_On_Leader_Follower + (TAO_Transport *transport) + : TAO_Wait_Strategy (transport) +{ +} + +TAO_Wait_On_Leader_Follower::~TAO_Wait_On_Leader_Follower (void) +{ +} + +/* + * Hook to specialize the wait strategy when the concrete strategy is + * a simple "lf" strategy. Add all public/protected/private methods + * within the *COPY* hooks. + */ + +//@@ WAIT_STRATEGY_SPL_COPY_HOOK_START + +int +TAO_Wait_On_Leader_Follower::register_handler (void) +{ + if (!this->is_registered_) + { + return this->transport_->register_handler (); + } + + return 1; +} + +bool +TAO_Wait_On_Leader_Follower::non_blocking (void) const +{ + return true; +} + +int +TAO_Wait_On_Leader_Follower::sending_request (TAO_ORB_Core *orb_core, + int two_way) +{ + // Register the handler. + if (!this->is_registered_) + { + this->transport_->register_handler (); + } + + // Send the request. +//@@ LF_WAIT_STRATEGY_SPL_SENDING_REQUEST_HOOK + return this->TAO_Wait_Strategy::sending_request (orb_core, two_way); +} + +int +TAO_Wait_On_Leader_Follower::wait (ACE_Time_Value *max_wait_time, + TAO_Synch_Reply_Dispatcher &rd) +{ + TAO_Leader_Follower &leader_follower = + this->transport_->orb_core ()->leader_follower (); + return leader_follower.wait_for_event (&rd, this->transport_, max_wait_time); +} + +bool +TAO_Wait_On_Leader_Follower::can_process_upcalls (void) const +{ + return true; +} + +//@@ WAIT_STRATEGY_SPL_COPY_HOOK_END +/* + * End copy hook. + */ + +TAO_END_VERSIONED_NAMESPACE_DECL |