summaryrefslogtreecommitdiff
path: root/TAO/tao/Asynch_Reply_Dispatcher_Base.h
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:11 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:11 +0000
commit6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (patch)
treeda50d054f9c761c3f6a5923f6979e93306c56d68 /TAO/tao/Asynch_Reply_Dispatcher_Base.h
parent0e555b9150d38e3b3473ba325b56db2642e6352b (diff)
downloadATCD-6b846cf03c0bcbd8c276cb0af61a181e5f98eaae.tar.gz
Repo restructuring
Diffstat (limited to 'TAO/tao/Asynch_Reply_Dispatcher_Base.h')
-rw-r--r--TAO/tao/Asynch_Reply_Dispatcher_Base.h171
1 files changed, 0 insertions, 171 deletions
diff --git a/TAO/tao/Asynch_Reply_Dispatcher_Base.h b/TAO/tao/Asynch_Reply_Dispatcher_Base.h
deleted file mode 100644
index d2d81cbb221..00000000000
--- a/TAO/tao/Asynch_Reply_Dispatcher_Base.h
+++ /dev/null
@@ -1,171 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Asynch_Reply_Dispatcher_Base.h
- *
- * $Id$
- *
- * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * @author Jeff Parsons <parsons@cs.wustl.edu>
- */
-//=============================================================================
-
-#ifndef TAO_ASYNCH_REPLY_DISPATCHER_BASE_H
-#define TAO_ASYNCH_REPLY_DISPATCHER_BASE_H
-
-#include /**/ "ace/pre.h"
-
-#include "tao/Reply_Dispatcher.h"
-#include "tao/CDR.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "tao/IOP_IORC.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-class ACE_Time_Value;
-class ACE_Lock;
-class ACE_Allocator;
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
-class TAO_Pluggable_Reply_Params;
-class TAO_ORB_Core;
-class TAO_Transport;
-/**
- * @class TAO_Asynch_Reply_Dispatcher_Base
- *
- * @brief Base class for TAO_Asynch_Reply_Dispatcher and
- * TAO_DII_Deferred_Reply_Dispatcher
- */
-class TAO_Export TAO_Asynch_Reply_Dispatcher_Base
- : public TAO_Reply_Dispatcher
-{
-public:
- /// Default constructor.
- TAO_Asynch_Reply_Dispatcher_Base (TAO_ORB_Core *orb_core,
- ACE_Allocator *allocator = 0);
-
- /// Sets the transport for this invocation.
- void transport (TAO_Transport *t);
-
- /// @name The Reply Dispatcher methods
- //@{
- virtual int dispatch_reply (TAO_Pluggable_Reply_Params &) = 0;
-
- virtual void connection_closed (void) = 0;
- //@}
-
- /// Inform that the reply timed out
- virtual void reply_timed_out (void) = 0;
-
- /// Install the timeout handler
- virtual long schedule_timer (CORBA::ULong ,
- const ACE_Time_Value &
- ACE_ENV_ARG_DECL) = 0;
-
- /// @name Mutators for refcount
- //@{
- void incr_refcount (void);
- void decr_refcount (void);
- //@}
-
- /// A helper method that can be used by the subclasses
- /**
- * The semantics of this helper method needs careful attention. A
- * call to this method will do the following
- *
- * - If the reply has already been dispatched, the return value
- * will be false to signify not to try.
- *
- * - If the reply has not been dispatched, this method will set
- * the flag to be true and return a true value to signify that
- * the caller thread can go ahead and dispatch reply.
- *
- * Why are we clumping everything in one method. Answer is we need
- * atomicity?
- */
- bool try_dispatch_reply (void);
-
-protected:
-
- /// Destructor.
- virtual ~TAO_Asynch_Reply_Dispatcher_Base (void);
-
-protected:
- /// The service context list.
- /**
- * Note, that this is not a reference as in
- * the synchronous case. We own the reply_service_info
- * because our TAO_Asynch_Invocation or TAO_DII_Deferred_Invocation
- * will go out of scope before we are done.
- */
- IOP::ServiceContextList reply_service_info_;
-
- /// The buffer that is used to initialise the data block
- char buf_[ACE_CDR::DEFAULT_BUFSIZE];
-
- /// Datablock that is created on the stack to initialise the CDR
- /// stream underneath.
- ACE_Data_Block db_;
-
- /// CDR stream which has the reply information that needs to be
- /// demarshalled by the stubs
- TAO_InputCDR reply_cdr_;
-
- /// This invocation is using this transport, may change...
- TAO_Transport *transport_;
-
-private:
- /// Lock to protect refcount and @c is_reply_dispatched_ flag.
- ACE_Lock *lock_;
-
- /// Refcount paraphernalia for this class
- CORBA::ULong refcount_;
-
- /// Has the reply been dispatched?
- bool is_reply_dispatched_;
-
- /// Allocator that was used to allocate this reply dispatcher. In case of
- /// zero we come from the heap.
- ACE_Allocator *allocator_;
-};
-
-namespace TAO
-{
- /**
- * @class ARDB_Refcount_Functor
- *
- * @brief Functor for refcounting of Asynch_Reply_Dispatcher_Base
- *
- * This is used to safely handle the destruction of
- * Asynch_Reply_Dispatcher_Base objects which are created on the
- * heap. We cannot use auto_ptr <> since it calls delete on the
- * pointer, and calling delete on Asynch_Reply_Dispatcher_Base *
- * will not work. Hence this functor will be used with Auto_Functor
- * class to handle the memory safely.
- *
- * @todo Ideally, this class can be a generic class. But that
- * requires quite a bit of cleanup within TAO to be more useful.
- */
- class TAO_Export ARDB_Refcount_Functor
- {
- public:
- void operator() (TAO_Asynch_Reply_Dispatcher_Base *ardb)
- ACE_THROW_SPEC (());
- };
-
-}
-
-TAO_END_VERSIONED_NAMESPACE_DECL
-
-#if defined (__ACE_INLINE__)
-#include "tao/Asynch_Reply_Dispatcher_Base.i"
-#endif /* __ACE_INLINE__ */
-
-#include /**/ "ace/post.h"
-#endif /* TAO_ASYNCH_REPLY_DISPATCHER_BASE_H */