summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/Container.cpp
blob: 62d20c6490a9b818e56ec6538974b1a466fbdb06 (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// $Id$

#include "Container.h"
#include "ThreadPool_Task.h"
#include "POA_Helper.h"

#if ! defined (__ACE_INLINE__)
#include "Container.inl"
#endif /* __ACE_INLINE__ */

ACE_RCSID(RT_Notify, TAO_NS_Container, "$Id$")

TAO_NS_Container::TAO_NS_Container (void)
  :object_poa_ (0), proxy_poa_ (0), delete_object_poa_ (0), delete_proxy_poa_ (0)
{
}

TAO_NS_Container::~TAO_NS_Container ()
{
}

void
TAO_NS_Container::init (TAO_NS_POA_Helper* poa, TAO_NS_Worker_Task* worker_task, TAO_NS_POA_Helper* object_poa, TAO_NS_POA_Helper* proxy_poa ACE_ENV_ARG_DECL)
{
  TAO_NS_Object::init (poa, worker_task ACE_ENV_ARG_PARAMETER);
  ACE_CHECK;

  object_poa_ = object_poa;
  proxy_poa_ = proxy_poa;
}

void
TAO_NS_Container::cleanup (ACE_ENV_SINGLE_ARG_DECL)
{
  if (delete_object_poa_ == 1)
    {
      object_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
      delete object_poa_;
    }

  if (delete_proxy_poa_ == 1)
    {
      proxy_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
      delete proxy_poa_;
    }
}

void
TAO_NS_Container::object_poa (TAO_NS_POA_Helper* object_poa)
{
  object_poa_ = object_poa;
  delete_object_poa_ = 1;
}

TAO_NS_POA_Helper*
TAO_NS_Container::object_poa (void)
{
  return this->object_poa_;
}

void
TAO_NS_Container::proxy_poa (TAO_NS_POA_Helper* proxy_poa)
{
  proxy_poa_ = proxy_poa;
  delete_proxy_poa_ = 1;
}

TAO_NS_POA_Helper*
TAO_NS_Container::proxy_poa (void)
{
  return this->proxy_poa_;
}