summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/Default_Servant_Dispatcher.cpp
blob: b4aea740b649af6c96c3aa1f2eaef7e8bf6a9b84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// @(#) $Id$

#include "Default_Servant_Dispatcher.h"
#include "POA.h"

ACE_RCSID(tao, Default_Acceptor_Filter, "$Id$")

TAO_Default_Servant_Dispatcher::~TAO_Default_Servant_Dispatcher (void)
{
}

void
TAO_Default_Servant_Dispatcher::dispatch (
  TAO_Object_Adapter::Servant_Upcall &servant_upcall,
  TAO_ServerRequest &req
  TAO_ENV_ARG_DECL)
{
  servant_upcall.servant ()->_dispatch (req,
                                        &servant_upcall
                                        TAO_ENV_ARG_PARAMETER);
}

TAO_POA *
TAO_Default_Servant_Dispatcher::create_POA (const ACE_CString &name,
                                            TAO_POA_Manager &poa_manager,
                                            const TAO_POA_Policy_Set &policies,
                                            TAO_POA *parent,
                                            ACE_Lock &lock,
                                            TAO_SYNCH_MUTEX &thread_lock,
                                            TAO_ORB_Core &orb_core,
                                            TAO_Object_Adapter *object_adapter
                                            TAO_ENV_ARG_DECL)
{
  TAO_POA *poa;

  ACE_NEW_THROW_EX (poa,
                    TAO_POA (name,
                             poa_manager,
                             policies,
                             parent,
                             lock,
                             thread_lock,
                             orb_core,
                             object_adapter
                             TAO_ENV_ARG_PARAMETER),
                    CORBA::NO_MEMORY ());
  ACE_CHECK_RETURN (0);

  return poa;
}