UniSet  2.6.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 
55  void registration(const std::string& name, const uniset::ObjectPtr oRef, const std::string& section, bool force = false) const
58 
60  void registration(const std::string& fullName, const uniset::ObjectPtr oRef, bool force = false) const
62 
64  void unregistration(const std::string& name, const std::string& section) const throw(uniset::ORepFailed, uniset::NameNotFound);
66  void unregistration(const std::string& fullName) const throw(uniset::ORepFailed, uniset::NameNotFound);
67  // @}
68  // end of ORepGroup
69 
71  uniset::ObjectPtr resolve(const std::string& name, const std::string& NSName = "NameService")const throw(uniset::ORepFailed, uniset::NameNotFound);
72 
74  bool isExist( const uniset::ObjectPtr& oref ) const;
76  bool isExist( const std::string& fullName ) const;
77 
85  {
88  };
89 
91  bool list(const std::string& section, uniset::ListObjectName* ls, size_t how_many = 300)throw(uniset::ORepFailed);
92 
94  bool listSections(const std::string& in_section, uniset::ListObjectName* ls, size_t how_many = 300)throw(uniset::ORepFailed);
95 
96  // -------------------------------------------------------------------
98  bool createSection( const std::string& name, const std::string& in_section )throw(uniset::ORepFailed, uniset::InvalidObjectName);
99 
101  bool createSectionF(const std::string& fullName)throw(uniset::ORepFailed, uniset::InvalidObjectName);
102 
104  bool createRootSection(const std::string& name);
105 
107  bool removeSection(const std::string& fullName, bool recursive = false);
108 
110  bool renameSection(const std::string& newName, const std::string& fullName);
111 
113  void printSection(const std::string& fullName);
114 
115  // @}
116  // end of add to ORepServiceGroup
117 
118  protected:
119 
121  mutable std::string nsName;
122  std::shared_ptr<uniset::Configuration> uconf;
123 
124  bool list(const std::string& section, uniset::ListObjectName* ls, unsigned int how_many, ObjectType type);
125 
127  bool createContext( const std::string& cname, CosNaming::NamingContext_ptr ctx);
128 
129  private:
130  bool init() const;
131  mutable CosNaming::NamingContext_var localctx;
132  };
133  // -------------------------------------------------------------------------
134 } // end of uniset namespace
135 //};
136 // -----------------------------------------------------------------------------------------
137 #endif
138 // -----------------------------------------------------------------------------------------
void unregistration(const std::string &name, const std::string &section) const
Удаление записи об объекте name в секции section.
Definition: ObjectRepository.cc:203
Definition: CallbackTimer.h:29
bool removeSection(const std::string &fullName, bool recursive=false)
Функция удаления секции
Definition: ObjectRepository.cc:595
bool createSectionF(const std::string &fullName)
Definition: ObjectRepository.cc:483
Definition: Exceptions.h:78
uniset::ObjectPtr resolve(const std::string &name, const std::string &NSName="NameService") const
Definition: ObjectRepository.cc:253
STL namespace.
bool createRootSection(const std::string &name)
Функция создания секции в корневом 'каталоге'.
Definition: ObjectRepository.cc:502
Definition: Configuration.h:45
Definition: Exceptions.h:170
bool listSections(const std::string &in_section, uniset::ListObjectName *ls, size_t how_many=300)
Получние списка how_many подсекций из секции in_section.
Definition: ObjectRepository.cc:325
bool list(const std::string &section, uniset::ListObjectName *ls, size_t how_many=300)
Получение списка how_many объектов из секции section.
Definition: ObjectRepository.cc:311
CORBA::Object_ptr ObjectPtr
Definition: UniSetTypes.h:84
std::list< std::string > ListObjectName
Definition: UniSetTypes.h:82
Definition: Exceptions.h:177
ObjectType
Definition: ObjectRepository.h:84
bool renameSection(const std::string &newName, const std::string &fullName)
Функция переименования секции
Definition: ObjectRepository.cc:704
bool isExist(const uniset::ObjectPtr &oref) const
Definition: ObjectRepository.cc:424
bool createSection(const std::string &name, const std::string &in_section)
Создание секции
Definition: ObjectRepository.cc:453
bool createContext(const std::string &cname, CosNaming::NamingContext_ptr ctx)
Definition: ObjectRepository.cc:509
Definition: Exceptions.h:144
Definition: ObjectRepository.h:87
void registration(const std::string &name, const uniset::ObjectPtr oRef, const std::string &section, bool force=false) const
Функция регистрации объекта по имени с указанием секции
Definition: ObjectRepository.cc:86
string< SizeOfObjectType > ObjectType
Definition: UniSetTypes_i.idl:33
void printSection(const std::string &fullName)
Definition: ObjectRepository.cc:566
Definition: ObjectRepository.h:86
Definition: ObjectRepository.h:45