1 : //=============================================================================
2 : // File <$/src/cpp/prod/poa/POAManager.cpp>
3 : // This file is part of YaOrb : Yet Another Object Request Broker,
4 : // Copyright (c) 2000-2003, Marc Alff.
5 : //
6 : // This program is free software; you can redistribute it and/or
7 : // modify it under the terms of the GNU General Public License
8 : // as published by the Free Software Foundation; either version 2
9 : // of the License, or (at your option) any later version.
10 : //
11 : // This program is distributed in the hope that it will be useful,
12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : // GNU General Public License for more details.
15 : //
16 : // You should have received a copy of the GNU General Public License
17 : // along with this program; if not, write to the Free Software
18 : // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 : //
20 : //=============================================================================
21 :
22 : // MANUAL Part of PortableServer::POAManager.
23 :
24 : #include <yaorb/CORBA.h>
25 :
26 5 : void PortableServer::POAManager::IncRefCount(void)
27 : {
28 5 : _refCount ++ ;
29 : }
30 :
31 1 : void PortableServer::POAManager::DecRefCount(void)
32 : {
33 1 : _refCount -- ;
34 :
35 1 : if (_refCount == 0L)
36 : {
37 : PortableServer::POAManager* that = (PortableServer::POAManager*) this ;
38 0 : delete that ;
39 : }
40 : }
41 :
42 : PortableServer::POAManager_ptr
43 : PortableServer::POAManager::_duplicate(
44 8 : PortableServer::POAManager_ptr ptr)
45 : {
46 8 : if (ptr)
47 : {
48 5 : ptr->IncRefCount() ;
49 : }
50 :
51 : return ptr ;
52 : }
53 :
54 : PortableServer::POAManager_ptr
55 3 : PortableServer::POAManager::create(void)
56 : {
57 3 : return new POAManager() ;
58 : }
59 :
60 3 : PortableServer::POAManager::POAManager()
61 : : _refCount(0),
62 3 : _state(HOLDING)
63 : {
64 3 : NON_DEV("POAManager") ;
65 : }
66 :
67 0 : PortableServer::POAManager::~POAManager()
68 : {
69 0 : NON_DEV("POAManager") ;
70 0 : }
71 :
72 : void
73 1 : PortableServer::POAManager::activate(void)
74 : {
75 1 : if (_state == INACTIVE)
76 : {
77 0 : throw PortableServer::POAManager::AdapterInactive() ;
78 : }
79 :
80 1 : _state = ACTIVE ;
81 :
82 1 : NON_DEV("POAManager") ;
83 : }
84 :
85 : void
86 : PortableServer::POAManager::hold_requests(
87 0 : CORBA::Boolean wait_for_completion)
88 : {
89 0 : if (_state == INACTIVE)
90 : {
91 0 : throw PortableServer::POAManager::AdapterInactive() ;
92 : }
93 :
94 0 : _state = HOLDING ;
95 :
96 0 : if ( ! wait_for_completion)
97 : {
98 0 : return ;
99 : }
100 :
101 0 : NON_DEV("POAManager") ;
102 : }
103 :
104 : void
105 : PortableServer::POAManager::discard_requests(
106 0 : CORBA::Boolean wait_for_completion)
107 : {
108 0 : if (_state == INACTIVE)
109 : {
110 0 : throw PortableServer::POAManager::AdapterInactive() ;
111 : }
112 :
113 0 : _state = DISCARDING ;
114 :
115 0 : if ( ! wait_for_completion)
116 : {
117 0 : return ;
118 : }
119 :
120 0 : NON_DEV("POAManager") ;
121 : }
122 :
123 : void
124 : PortableServer::POAManager::deactivate(
125 : CORBA::Boolean etherealize_objects,
126 0 : CORBA::Boolean wait_for_completion)
127 : {
128 0 : if (_state == INACTIVE)
129 : {
130 0 : throw PortableServer::POAManager::AdapterInactive() ;
131 : }
132 :
133 0 : NON_DEV("POAManager") ;
134 : }
135 :
136 : PortableServer::POAManager::State
137 0 : PortableServer::POAManager::get_state(void)
138 : {
139 : return _state ;
140 : }
141 :
142 : //=============================================================================
143 : // END of file <src/cpp/prod/poa/POAManager.cpp>
144 : //=============================================================================
|