UniSet  2.8.0
ObjectRepository.h
1 /*
2  * Copyright (c) 2015 Pavel Vainerman.
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as
6  * published by the Free Software Foundation, version 2.1.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Lesser Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 // --------------------------------------------------------------------------
21 // --------------------------------------------------------------------------
22 #ifndef ObjectRepository_H_
23 #define ObjectRepository_H_
24 // --------------------------------------------------------------------------
25 #include <memory>
26 #include <omniORB4/CORBA.h>
27 #include <omniORB4/Naming.hh>
28 #include <string>
29 #include "UniSetTypes.h"
30 #include "Exceptions.h"
31 #include "Configuration.h"
32 // -----------------------------------------------------------------------------------------
33 namespace uniset
34 {
35  //namespase ORepository
36  //{
37 
46  {
47  public:
48 
49  ObjectRepository( const std::shared_ptr<uniset::Configuration>& conf );
51 
58  void registration(const std::string& name, const uniset::ObjectPtr oRef, const std::string& section, bool force = false) const;
59 
63  void registration(const std::string& fullName, const uniset::ObjectPtr oRef, bool force = false) const;
64 
68  void unregistration(const std::string& name, const std::string& section) const;
69 
73  void unregistration(const std::string& fullName) const;
74  // @}
75  // end of ORepGroup
76 
80  uniset::ObjectPtr resolve(const std::string& name, const std::string& NSName = "NameService") const;
81 
83  bool isExist( const uniset::ObjectPtr& oref ) const;
85  bool isExist( const std::string& fullName ) const;
86 
94  {
97  };
98 
102  bool list(const std::string& section, uniset::ListObjectName* ls, size_t how_many = 300) const;
103 
107  bool listSections(const std::string& in_section, uniset::ListObjectName* ls, size_t how_many = 300) const;
108 
109  // -------------------------------------------------------------------
113  bool createSection( const std::string& name, const std::string& in_section ) const;
114 
118  bool createSectionF(const std::string& fullName) const;
119 
121  bool createRootSection( const std::string& name ) const;
122 
124  bool removeSection(const std::string& fullName, bool recursive = false) const;
125 
127  bool renameSection(const std::string& newName, const std::string& fullName) const;
128 
130  void printSection(const std::string& fullName) const;
131 
132  // @}
133  // end of add to ORepServiceGroup
134 
135  protected:
136 
138  mutable std::string nsName;
139  std::shared_ptr<uniset::Configuration> uconf;
140 
141  bool list(const std::string& section, uniset::ListObjectName* ls, size_t how_many, ObjectType type) const;
142 
144  bool createContext( const std::string& cname, CosNaming::NamingContext_ptr ctx) const;
145 
146  private:
147  bool init() const;
148  mutable CosNaming::NamingContext_var localctx;
149  };
150  // -------------------------------------------------------------------------
151 } // end of uniset namespace
152 //};
153 // -----------------------------------------------------------------------------------------
154 #endif
155 // -----------------------------------------------------------------------------------------
bool createContext(const std::string &cname, CosNaming::NamingContext_ptr ctx) const
Definition: ObjectRepository.cc:504
Definition: CommonEventLoop.h:14
bool removeSection(const std::string &fullName, bool recursive=false) const
Функция удаления секции
Definition: ObjectRepository.cc:590
void unregistration(const std::string &name, const std::string &section) const
Definition: ObjectRepository.cc:202
bool list(const std::string &section, uniset::ListObjectName *ls, size_t how_many=300) const
Definition: ObjectRepository.cc:307
void printSection(const std::string &fullName) const
Definition: ObjectRepository.cc:561
CORBA::Object_ptr ObjectPtr
Definition: UniSetTypes.h:87
bool renameSection(const std::string &newName, const std::string &fullName) const
Функция переименования секции
Definition: ObjectRepository.cc:699
std::list< std::string > ListObjectName
Definition: UniSetTypes.h:85
void registration(const std::string &name, const uniset::ObjectPtr oRef, const std::string &section, bool force=false) const
Definition: ObjectRepository.cc:87
bool createSection(const std::string &name, const std::string &in_section) const
Definition: ObjectRepository.cc:448
ObjectType
Definition: ObjectRepository.h:93
bool createSectionF(const std::string &fullName) const
Definition: ObjectRepository.cc:478
Definition: ObjectRepository.h:96
string< SizeOfObjectType > ObjectType
Definition: UniSetTypes_i.idl:33
bool createRootSection(const std::string &name) const
Функция создания секции в корневом 'каталоге'.
Definition: ObjectRepository.cc:497
bool isExist(const uniset::ObjectPtr &oref) const
Definition: ObjectRepository.cc:419
Definition: ObjectRepository.h:95
bool listSections(const std::string &in_section, uniset::ListObjectName *ls, size_t how_many=300) const
Definition: ObjectRepository.cc:321
Definition: ObjectRepository.h:45
uniset::ObjectPtr resolve(const std::string &name, const std::string &NSName="NameService") const
Definition: ObjectRepository.cc:250