COIOP_Acceptor.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    COIOP_Acceptor.h
00006  *
00007  *  $Id: COIOP_Acceptor.h 78931 2007-07-18 09:59:36Z johnnyw $
00008  *
00009  *  COIOP specific acceptor processing
00010  *
00011  *  @author  Johnny Willemsen <jwillemsen@remedy.nl>
00012  */
00013 //=============================================================================
00014 
00015 #ifndef TAO_COIOP_ACCEPTOR_H
00016 #define TAO_COIOP_ACCEPTOR_H
00017 
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "tao/orbconf.h"
00021 
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif /* ACE_LACKS_PRAGMA_ONCE */
00025 
00026 #if defined (TAO_HAS_COIOP) && (TAO_HAS_COIOP != 0)
00027 
00028 #include "tao/Strategies/strategies_export.h"
00029 #include "tao/Transport_Acceptor.h"
00030 #include "tao/Acceptor_Impl.h"
00031 #include "tao/GIOP_Message_Version.h"
00032 #include "ace/UUID.h"
00033 
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035 
00036 // TAO COIOP_Acceptor concrete call defination
00037 
00038 /**
00039  * @class TAO_COIOP_Acceptor
00040  *
00041  * @brief TAO_COIOP_Acceptor
00042  *
00043  * The COIOP-specific bridge class for the concrete acceptor.
00044  */
00045 class TAO_Strategies_Export TAO_COIOP_Acceptor : public TAO_Acceptor
00046 {
00047 public:
00048   /// Constructor.
00049   TAO_COIOP_Acceptor (void);
00050 
00051   /// Destructor.
00052   ~TAO_COIOP_Acceptor (void);
00053 
00054   /**
00055    * @name The TAO_Acceptor Methods
00056    *
00057    * Please check the documentation in Transport_Acceptor.h for details.
00058    */
00059   //@{
00060   virtual int open (TAO_ORB_Core *orb_core,
00061                     ACE_Reactor *reactor,
00062                     int version_major,
00063                     int version_minor,
00064                     const char *address,
00065                     const char *options = 0);
00066   virtual int open_default (TAO_ORB_Core *orb_core,
00067                             ACE_Reactor *reactor,
00068                             int version_major,
00069                             int version_minor,
00070                             const char *options = 0);
00071   virtual int close (void);
00072   virtual int create_profile (const TAO::ObjectKey &object_key,
00073                               TAO_MProfile &mprofile,
00074                               CORBA::Short priority);
00075 
00076   virtual int is_collocated (const TAO_Endpoint *endpoint);
00077   virtual CORBA::ULong endpoint_count (void);
00078 
00079   virtual int object_key (IOP::TaggedProfile &profile,
00080                           TAO::ObjectKey &key);
00081   //@}
00082 
00083 protected:
00084 
00085   /// Parse protocol specific options.
00086   virtual int parse_options (const char *options);
00087 
00088   /// Helper method to add a new profile to the mprofile for
00089   /// each endpoint.
00090   int create_new_profile (const TAO::ObjectKey &object_key,
00091                           TAO_MProfile &mprofile,
00092                           CORBA::Short priority);
00093 
00094   /// Helper method to create a profile that contains all of
00095   /// our endpoints.
00096   int create_shared_profile (const TAO::ObjectKey &object_key,
00097                              TAO_MProfile &mprofile,
00098                              CORBA::Short priority);
00099 protected:
00100 
00101   /**
00102    * Cache the information about the endpoints serviced by this
00103    * acceptor.
00104    */
00105   ACE_Utils::UUID uuid_;
00106 
00107   /**
00108    * The GIOP version for this endpoint
00109    * @@ Theoretically they shouldn't be here!! We need to look at a
00110    * way to move this out
00111    */
00112   TAO_GIOP_Message_Version version_;
00113 
00114   /// ORB Core.
00115   TAO_ORB_Core *orb_core_;
00116 };
00117 
00118 TAO_END_VERSIONED_NAMESPACE_DECL
00119 
00120 #endif /* TAO_HAS_COIOP && TAO_HAS_COIOP != 0 */
00121 
00122 #include /**/ "ace/post.h"
00123 
00124 #endif  /* TAO_COIOP_ACCEPTOR_H */

Generated on Tue Feb 2 17:47:18 2010 for TAO_Strategies by  doxygen 1.4.7