1 : //==============================================================================
2 : // File <$/src/cpp/prod/services/naming/CosNamingImpl.h>
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 : #ifndef COS_NAMING_IMPL
23 : #define COS_NAMING_IMPL
24 :
25 : #include "src/cpp/prod/tool/String.h"
26 :
27 : #include "gen/cpp/services/naming/POA_CosNaming.h"
28 :
29 : struct ContextImplInfo ;
30 :
31 : class NamingContextImpl
32 : : public POA_CosNaming::POA_NamingContext
33 : {
34 : public :
35 : NamingContextImpl() ;
36 : virtual ~NamingContextImpl() ;
37 :
38 : static void Init(
39 : const char* dir) ;
40 :
41 : static CORBA::Object_ptr resolveInitial(
42 : PortableServer::POA_ptr poa) ;
43 :
44 : virtual void bind(
45 : const CosNaming::Name& n,
46 : const CORBA::Object_ptr obj) ;
47 :
48 : virtual void rebind(
49 : const CosNaming::Name& n,
50 : const CORBA::Object_ptr obj) ;
51 :
52 : virtual void bind_context(
53 : const CosNaming::Name& n,
54 : CosNaming::NamingContext_ptr nc) ;
55 :
56 : virtual void rebind_context(
57 : const CosNaming::Name& n,
58 : CosNaming::NamingContext_ptr nc) ;
59 :
60 : virtual CORBA::Object_ptr resolve(
61 : const CosNaming::Name& n) ;
62 :
63 : virtual void unbind(
64 : const CosNaming::Name& n) ;
65 :
66 : virtual CosNaming::NamingContext_ptr new_context(void) ;
67 :
68 : virtual CosNaming::NamingContext_ptr bind_new_context(
69 : const CosNaming::Name& n) ;
70 :
71 : virtual void destroy(void) ;
72 :
73 : virtual void list(
74 : CORBA::ULong how_many,
75 : CosNaming::BindingList*& bl,
76 : CosNaming::BindingIterator_ptr& bi) ;
77 :
78 : private :
79 : void findInfo(ContextImplInfo&) ;
80 :
81 : static void bind2(
82 : ContextImplInfo& info,
83 : const CosNaming::Name& n,
84 : const CORBA::Object_ptr obj) ;
85 :
86 : static void rebind2(
87 : ContextImplInfo& info,
88 : const CosNaming::Name& n,
89 : const CORBA::Object_ptr obj) ;
90 :
91 : static void bind_context2(
92 : ContextImplInfo& info,
93 : const CosNaming::Name& n,
94 : CosNaming::NamingContext_ptr nc) ;
95 :
96 : static void rebind_context2(
97 : ContextImplInfo& info,
98 : const CosNaming::Name& n,
99 : CosNaming::NamingContext_ptr nc) ;
100 :
101 : static CORBA::Object_ptr resolve2(
102 : ContextImplInfo& info,
103 : const CosNaming::Name& n) ;
104 :
105 : static void unbind2(
106 : ContextImplInfo& info,
107 : const CosNaming::Name& n) ;
108 :
109 : static CosNaming::NamingContext_ptr new_context2(
110 : ContextImplInfo& info) ;
111 :
112 : static CosNaming::NamingContext_ptr bind_new_context2(
113 : ContextImplInfo& info,
114 : const CosNaming::Name& n) ;
115 :
116 : static void destroy2(
117 : ContextImplInfo& info) ;
118 :
119 : static void list2(
120 : ContextImplInfo& info,
121 : CORBA::ULong how_many,
122 : CosNaming::BindingList*& bl,
123 : CosNaming::BindingIterator_ptr& bi) ;
124 : } ;
125 :
126 : class BindingIteratorImpl
127 : : public POA_CosNaming::POA_BindingIterator
128 0 : {
129 : public :
130 : virtual CORBA::Boolean next_one(
131 : const CosNaming::Binding& b) ;
132 :
133 : virtual CORBA::Boolean next_n(
134 : CORBA::ULong how_many,
135 : CosNaming::BindingList*& bl) ;
136 :
137 : virtual void destroy(void) ;
138 :
139 : private :
140 : } ;
141 :
142 : #endif
143 :
|