00001 // -*- C++ -*- 00002 //============================================================================= 00003 /** 00004 * @file INS_Locator.h 00005 * 00006 * INS_Locator.h,v 1.5 2005/04/22 19:25:13 ossama Exp 00007 * 00008 * @brief This class implements the ImR's INS Locator class 00009 * 00010 * @author Darrell Brunsch <brunsch@cs.wustl.edu> 00011 */ 00012 //============================================================================= 00013 00014 #ifndef IMR_INS_LOCATOR_H 00015 #define IMR_INS_LOCATOR_H 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/IORTable/IORTable.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "tao/LocalObject.h" 00025 00026 00027 class ImR_Locator_i; 00028 00029 /** 00030 * @class INS_Locator 00031 * 00032 * @brief Implementation Repository INS Locator class 00033 * 00034 * This class provides a callback for the IORTable to call when it needs 00035 * to dynamically receive a IOR to forward in response to an INS request. 00036 */ 00037 class INS_Locator 00038 : public virtual IORTable::Locator, 00039 public virtual CORBA::LocalObject 00040 { 00041 public: 00042 INS_Locator (ImR_Locator_i& loc); 00043 00044 /// Locate the appropriate IOR. 00045 char* locate (const char *object_key ACE_ENV_ARG_DECL) 00046 ACE_THROW_SPEC ((CORBA::SystemException, IORTable::NotFound)); 00047 00048 private: 00049 ImR_Locator_i& imr_locator_; 00050 }; 00051 00052 #include /**/ "ace/post.h" 00053 #endif