23#ifndef UniSetObject_H_
24#define UniSetObject_H_
26#include <condition_variable>
35#include "UniSetTypes.h"
36#include "MessageType.h"
37#include "PassiveTimer.h"
38#include "Exceptions.h"
39#include "UInterface.h"
40#include "UniSetObject_i.hh"
41#include "ThreadCreator.h"
44#include "UHttpRequestHandler.h"
55 typedef std::list< std::shared_ptr<UniSetObject> >
ObjectsList;
74 public std::enable_shared_from_this<UniSetObject>,
75 public POA_UniSetObject_i,
77#ifndef DISABLE_REST_API
82 UniSetObject(
const std::string& name,
const std::string& section );
88 virtual CORBA::Boolean exist()
override;
93 std::string getName()
const;
100 const std::string getStrType();
113 const ::uniset::Timespec& tm,
114 const ::uniset::ProducerInfo& pi,
115 ::CORBA::Long priority,
116 ::CORBA::Long consumer )
override;
118#ifndef DISABLE_REST_API
121 virtual Poco::JSON::Object::Ptr httpHelp(
const Poco::URI::QueryParameters& p )
override;
126 std::shared_ptr<UniSetObject> get_ptr();
130 uniset::Message::Priority p = uniset::Message::High )
override;
132 friend std::ostream& operator<<(std::ostream& os,
UniSetObject& obj );
136 std::shared_ptr<UInterface>
ui;
138 std::weak_ptr<UniSetManager> mymngr;
147 virtual void onTextMessage(
const uniset::TextMessage* tm ) {}
176 void thread(
bool create );
206#ifndef DISABLE_REST_API
208 virtual Poco::JSON::Object::Ptr httpGetMyInfo( Poco::JSON::Object::Ptr root );
209 Poco::JSON::Object::Ptr request_configure(
const std::string& req,
const Poco::URI::QueryParameters& p );
210 Poco::JSON::Object::Ptr request_configure_get(
const std::string& req,
const Poco::URI::QueryParameters& p );
211 Poco::JSON::Object::Ptr request_configure_by_name(
const std::string& name,
const std::string& props );
212 Poco::JSON::Object::Ptr request_params(
const std::string& req,
const Poco::URI::QueryParameters& p );
213 virtual Poco::JSON::Object::Ptr request_params_get(
const std::string& req,
const Poco::URI::QueryParameters& p );
214 virtual Poco::JSON::Object::Ptr request_params_set(
const std::string& req,
const Poco::URI::QueryParameters& p );
219 friend class UniSetManager;
220 friend class UniSetActivator;
225 bool init(
const std::weak_ptr<UniSetManager>& om );
233 void unregistration();
239 pid_t msgpid = { 0 };
240 bool regOK = {
false };
241 std::atomic_bool active;
244 std::unique_ptr<UniSetTimer> tmr;
246 CORBA::Object_var oref;
249 mutable uniset::uniset_rwmutex refmutex;
251 std::unique_ptr< ThreadCreator<UniSetObject> > thr;
255 MQMutex mqueueMedium;
259 std::mutex m_working;
260 std::condition_variable cv_working;
Определения MessageType.h:127
Определения MessageType.h:171
Определения MessageType.h:214
Определения UHttpRequestHandler.h:129
Определения UniSetActivator.h:81
Определения UniSetManager.h:60
Определения UniSetObject.h:80
void setID(uniset::ObjectId id)
Определения UniSetObject.cc:154
size_t getMaxSizeOfMessageQueue() const
Определения UniSetObject.cc:171
void offThread()
Определения UniSetObject.cc:670
uniset::ObjectPtr getRef() const
Определения UniSetObject.cc:630
virtual bool deactivateObject()
Деактивация объекта (переопределяется для необходимых действий при завершении работы).
Определения UniSetObject.cc:653
VoidMessagePtr waitMessage(timeout_t msec=UniSetTimer::WaitUpTime)
Определения UniSetObject.cc:201
void onThread()
Определения UniSetObject.cc:675
void setMaxSizeOfMessageQueue(size_t s)
Определения UniSetObject.cc:164
virtual void processingMessage(const uniset::VoidMessage *msg)
Определения UniSetObject.cc:926
size_t countMessages()
Определения UniSetObject.cc:636
virtual void pushMessage(const char *msg, ::CORBA::Long mtype, const ::uniset::Timespec &tm, const ::uniset::ProducerInfo &pi, ::CORBA::Long priority, ::CORBA::Long consumer) override
поместить текстовое сообщение в очередь
Определения UniSetObject.cc:403
size_t getCountOfLostMessages() const
Определения UniSetObject.cc:641
virtual timeout_t askTimer(uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
Определения UniSetObject.cc:991
void setThreadPriority(Poco::Thread::Priority p)
Определения UniSetObject.cc:381
std::shared_ptr< UInterface > ui
Определения UniSetObject.h:136
void termWaiting()
Определения UniSetObject.cc:375
virtual bool activateObject()
Активизация объекта (переопределяется для необходимых действий после активизации).
Определения UniSetObject.cc:648
virtual void callback()
Определения UniSetObject.cc:902
UniSetObject(const std::string &name, const std::string §ion)
Определения UniSetObject.cc:89
VoidMessagePtr receiveMessage()
Определения UniSetObject.cc:190
void thread(bool create)
Определения UniSetObject.cc:665
void setActive(bool set)
Определения UniSetObject.cc:181
virtual void push(const uniset::TransportMessage &msg) override
поместить сообщение в очередь
Определения UniSetObject.cc:387
bool isActive() const
Определения UniSetObject.cc:176
static const timeout_t WaitUpTime
Определения PassiveTimer.h:69
Определения MessageType.h:91
Определения Calibration.h:27
std::list< std::shared_ptr< UniSetObject > > ObjectsList
Определения UniSetObject.h:55
CORBA::Object_ptr ObjectPtr
Определения UniSetTypes.h:94
string< SizeOfObjectType > ObjectType
Определения UniSetTypes_i.idl:33
long ObjectId
Определения UniSetTypes_i.idl:30
long TimerId
Определения UniSetTypes_i.idl:32
Определения UniSetTypes_i.idl:65
Определения UniSetTypes_i.idl:45
Определения UHttpRequestHandler.h:87