00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file LocateRequest_Invocation_Adapter.h 00006 * 00007 * LocateRequest_Invocation_Adapter.h,v 1.7 2005/11/24 11:05:45 ossama Exp 00008 * 00009 * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> 00010 */ 00011 //============================================================================= 00012 #ifndef TAO_LOCATEREQUEST_INVOCATION_ADAPTER_H 00013 #define TAO_LOCATEREQUEST_INVOCATION_ADAPTER_H 00014 00015 #include /**/ "ace/pre.h" 00016 00017 #include "tao/Policy_ForwardC.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 # pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00024 class ACE_Time_Value; 00025 ACE_END_VERSIONED_NAMESPACE_DECL 00026 00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00028 00029 namespace CORBA 00030 { 00031 class Object; 00032 typedef Object *Object_ptr; 00033 } 00034 00035 namespace TAO 00036 { 00037 /** 00038 * @class LocateRequest_Invocation_Adapter 00039 * 00040 * @brief Adapter class for locate request invocations. 00041 * 00042 * This class provides a look and feel similar to the 00043 * TAO::Invocation_Adapter though the functionalities are 00044 * different. For the record, IDL compiler doesn't know the 00045 * existence of this class. This class is concerned with the 00046 * creation and invocation of locate request invocations to the 00047 * target object 00048 * 00049 * @todo Need to think what happens if the target is 00050 * collocated. Looks like there are no ways to utilize the 00051 * opportunity that may have been presented. 00052 */ 00053 class TAO_Export LocateRequest_Invocation_Adapter 00054 { 00055 public: 00056 LocateRequest_Invocation_Adapter ( 00057 CORBA::Object_ptr target); 00058 00059 /// Start the invocation on the target 00060 void invoke (ACE_ENV_SINGLE_ARG_DECL); 00061 00062 /// Accessor to the inconsistent policy list 00063 CORBA::PolicyList *get_inconsistent_policies (void); 00064 00065 private: 00066 00067 bool get_timeout (ACE_Time_Value &val); 00068 00069 private: 00070 CORBA::Object_ptr target_; 00071 CORBA::PolicyList_var list_; 00072 }; 00073 } 00074 00075 TAO_END_VERSIONED_NAMESPACE_DECL 00076 00077 #include /**/ "ace/post.h" 00078 00079 #endif /*TAO_LOCATEREQUEST_INVOCATION_ADAPTER_H*/