00001 // -*- C++ -*- 00002 //============================================================================= 00003 /** 00004 * @file INS_Locator.h 00005 * 00006 * $Id: INS_Locator.h 77878 2007-04-02 17:53:08Z elliott_c $ 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 TAO_Local_RefCounted_Object 00040 { 00041 public: 00042 INS_Locator (ImR_Locator_i& loc); 00043 00044 /// Locate the appropriate IOR. 00045 char* locate (const char *object_key); 00046 00047 private: 00048 ImR_Locator_i& imr_locator_; 00049 }; 00050 00051 #include /**/ "ace/post.h" 00052 #endif