00001
00002
00003 #include "tao/orbconf.h"
00004
00005 ACE_RCSID (PortableServer,
00006 ThreadStrategySingle,
00007 "$Id: ThreadStrategySingle.cpp 75887 2006-12-07 08:01:14Z johnnyw $")
00008
00009 #if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT) && !defined (CORBA_E_MICRO)
00010
00011 #include "tao/PortableServer/ThreadStrategySingle.h"
00012 #include "ace/Dynamic_Service.h"
00013 #include "ace/Log_Msg.h"
00014
00015 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00016
00017 namespace TAO
00018 {
00019 namespace Portable_Server
00020 {
00021 int
00022 ThreadStrategySingle::enter ()
00023 {
00024 return lock_.acquire();
00025 }
00026
00027 int
00028 ThreadStrategySingle::exit ()
00029 {
00030 return lock_.release();
00031 }
00032
00033 ::PortableServer::ThreadPolicyValue
00034 ThreadStrategySingle::type() const
00035 {
00036 return ::PortableServer::SINGLE_THREAD_MODEL;
00037 }
00038 }
00039 }
00040
00041 TAO_END_VERSIONED_NAMESPACE_DECL
00042
00043 ACE_FACTORY_NAMESPACE_DEFINE (
00044 ACE_Local_Service,
00045 ThreadStrategySingle,
00046 TAO::Portable_Server::ThreadStrategySingle)
00047
00048 ACE_STATIC_SVC_DEFINE (
00049 ThreadStrategySingle,
00050 ACE_TEXT ("ThreadStrategySingle"),
00051 ACE_SVC_OBJ_T,
00052 &ACE_SVC_NAME (ThreadStrategySingle),
00053 ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
00054 0)
00055
00056 #endif