00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TAO_DIOP_CONNECTOR_H
00016 #define TAO_DIOP_CONNECTOR_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
00025
00026 #if defined (TAO_HAS_DIOP) && (TAO_HAS_DIOP != 0)
00027
00028 #include "tao/Strategies/DIOP_Connection_Handler.h"
00029 #include "tao/Transport_Connector.h"
00030
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033 class TAO_Endpoint;
00034 class TAO_DIOP_Endpoint;
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 class TAO_Strategies_Export TAO_DIOP_Connector : public TAO_Connector
00048 {
00049 public:
00050
00051
00052 TAO_DIOP_Connector (CORBA::Boolean flag = false);
00053
00054
00055 ~TAO_DIOP_Connector (void);
00056
00057
00058
00059
00060
00061
00062
00063 int open (TAO_ORB_Core *orb_core);
00064 int close (void);
00065
00066 TAO_Profile *create_profile (TAO_InputCDR& cdr);
00067
00068 virtual int check_prefix (const char *endpoint);
00069
00070 virtual char object_key_delimiter (void) const;
00071
00072
00073 protected:
00074
00075
00076
00077
00078
00079
00080
00081 int set_validate_endpoint (TAO_Endpoint *ep);
00082
00083 TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r,
00084 TAO_Transport_Descriptor_Interface &desc,
00085 ACE_Time_Value *timeout = 0);
00086
00087 virtual TAO_Profile * make_profile (ACE_ENV_SINGLE_ARG_DECL);
00088
00089
00090
00091 int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00092
00093 protected:
00094
00095
00096 CORBA::Boolean lite_flag_;
00097
00098 private:
00099
00100
00101 TAO_DIOP_Endpoint *remote_endpoint (TAO_Endpoint *ep);
00102
00103 private:
00104
00105 ACE_Hash_Map_Manager_Ex < ACE_INET_Addr,
00106 TAO_DIOP_Connection_Handler *,
00107 ACE_Hash < ACE_INET_Addr >,
00108 ACE_Equal_To < ACE_INET_Addr >,
00109 ACE_Null_Mutex > svc_handler_table_;
00110
00111 typedef ACE_Hash_Map_Iterator_Ex < ACE_INET_Addr,
00112 TAO_DIOP_Connection_Handler *,
00113 ACE_Hash < ACE_INET_Addr >,
00114 ACE_Equal_To < ACE_INET_Addr >,
00115 ACE_Null_Mutex > SvcHandlerIterator;
00116 };
00117
00118 TAO_END_VERSIONED_NAMESPACE_DECL
00119
00120 #endif
00121
00122 #include "ace/post.h"
00123
00124 #endif