00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file Local_Servant_Base.h 00006 * 00007 * $Id: Local_Servant_Base.h 76687 2007-01-29 19:18:13Z johnnyw $ 00008 * 00009 * @author Irfan Pyarali <irfan@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_LOCAL_SERVANT_BASE_H 00014 #define TAO_LOCAL_SERVANT_BASE_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/PortableServer/portableserver_export.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "tao/PortableServer/Servant_Base.h" 00025 00026 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00027 00028 /** 00029 * @class TAO_Local_ServantBase 00030 * 00031 * @brief Base class for local servants. 00032 * 00033 * This servant does not register with the POA and does not 00034 * produce a valid stub, i.e., object references of this servant 00035 * cannot be exported. The (collocated) stubs of these servants 00036 * will always be direct, i.e., call directly to the servant and 00037 * don't call through the POA since this servant is not 00038 * registered with the POA. 00039 */ 00040 class TAO_PortableServer_Export TAO_Local_ServantBase 00041 : public virtual TAO_ServantBase 00042 { 00043 protected: 00044 /// This is an auxiliary method for _this(). Make sure *not* to 00045 /// register with the default POA. 00046 TAO_Stub *_create_stub (void); 00047 00048 /// Throws CORBA::BAD_OPERATION exception. 00049 void _dispatch (TAO_ServerRequest &request, void *servant_upcall); 00050 }; 00051 00052 TAO_END_VERSIONED_NAMESPACE_DECL 00053 00054 #if defined (__ACE_INLINE__) 00055 # include "tao/PortableServer/Local_Servant_Base.inl" 00056 #endif /* __ACE_INLINE__ */ 00057 00058 #include /**/ "ace/post.h" 00059 00060 #endif /* TAO_LOCAL_SERVANT_BASE_H */