UniSet 2.32.1
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// -----------------------------------------------------------------------------------------
33namespace 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
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// -----------------------------------------------------------------------------------------
Definition ObjectRepository.h:46
void registration(const std::string &name, const uniset::ObjectPtr oRef, const std::string &section, bool force=false) const
Definition ObjectRepository.cc:87
bool isExist(const uniset::ObjectPtr &oref) const
Definition ObjectRepository.cc:419
void unregistration(const std::string &name, const std::string &section) const
Definition ObjectRepository.cc:202
uniset::ObjectPtr resolve(const std::string &name, const std::string &NSName="NameService") const
Definition ObjectRepository.cc:250
ObjectType
Definition ObjectRepository.h:94
bool renameSection(const std::string &newName, const std::string &fullName) const
Функция переименования секции
Definition ObjectRepository.cc:699
bool listSections(const std::string &in_section, uniset::ListObjectName *ls, size_t how_many=300) const
Definition ObjectRepository.cc:321
void printSection(const std::string &fullName) const
Definition ObjectRepository.cc:561
bool createSectionF(const std::string &fullName) const
Definition ObjectRepository.cc:478
bool list(const std::string &section, uniset::ListObjectName *ls, size_t how_many=300) const
Definition ObjectRepository.cc:307
bool removeSection(const std::string &fullName, bool recursive=false) const
Функция удаления секции
Definition ObjectRepository.cc:590
bool createSection(const std::string &name, const std::string &in_section) const
Definition ObjectRepository.cc:448
bool createRootSection(const std::string &name) const
Функция создания секции в корневом 'каталоге'.
Definition ObjectRepository.cc:497
bool createContext(const std::string &cname, CosNaming::NamingContext_ptr ctx) const
Definition ObjectRepository.cc:504
@ Section
Definition ObjectRepository.h:96
@ ObjectRef
Definition ObjectRepository.h:95
Definition Calibration.h:27
std::list< std::string > ListObjectName
Definition UniSetTypes.h:92
CORBA::Object_ptr ObjectPtr
Definition UniSetTypes.h:94
string< SizeOfObjectType > ObjectType
Definition UniSetTypes_i.idl:33