00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef TAO_UIPMC_CONNECTOR_H
00016 #define TAO_UIPMC_CONNECTOR_H
00017
00018 #include "ace/pre.h"
00019
00020 #include "orbsvcs/PortableGroup/portablegroup_export.h"
00021
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif
00025
00026 #include "orbsvcs/PortableGroup/UIPMC_Connection_Handler.h"
00027
00028 #include "tao/Transport_Connector.h"
00029 #include "ace/Null_Mutex.h"
00030
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 class TAO_PortableGroup_Export TAO_UIPMC_Connector : public TAO_Connector
00045 {
00046 public:
00047
00048
00049 TAO_UIPMC_Connector (CORBA::Boolean flag = 0);
00050
00051
00052 ~TAO_UIPMC_Connector (void);
00053
00054
00055
00056 int open (TAO_ORB_Core *orb_core);
00057 int close (void);
00058 TAO_Profile *create_profile (TAO_InputCDR& cdr);
00059
00060 virtual int check_prefix (const char *endpoint);
00061
00062 virtual char object_key_delimiter (void) const;
00063
00064 protected:
00065
00066
00067 int set_validate_endpoint (TAO_Endpoint *endpoint);
00068
00069 TAO_Transport *make_connection (TAO::Profile_Transport_Resolver *r,
00070 TAO_Transport_Descriptor_Interface &desc,
00071 ACE_Time_Value *timeout = 0);
00072
00073 virtual TAO_Profile * make_profile (ACE_ENV_SINGLE_ARG_DECL);
00074
00075
00076 virtual int cancel_svc_handler (TAO_Connection_Handler * svc_handler);
00077
00078 private:
00079
00080 ACE_Hash_Map_Manager_Ex < ACE_INET_Addr,
00081 TAO_UIPMC_Connection_Handler *,
00082 ACE_Hash < ACE_INET_Addr >,
00083 ACE_Equal_To < ACE_INET_Addr >,
00084 ACE_Null_Mutex >
00085 svc_handler_table_;
00086
00087 typedef ACE_Hash_Map_Iterator_Ex < ACE_INET_Addr,
00088 TAO_UIPMC_Connection_Handler *,
00089 ACE_Hash < ACE_INET_Addr >,
00090 ACE_Equal_To < ACE_INET_Addr >,
00091 ACE_Null_Mutex >
00092 SvcHandlerIterator;
00093 };
00094
00095 TAO_END_VERSIONED_NAMESPACE_DECL
00096
00097 #include "ace/post.h"
00098
00099 #endif