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"
42 #include "LT_Object.h"
44 #include "UHttpRequestHandler.h"
50 class UniSetActivator;
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 );
87 std::shared_ptr<UniSetObject> get_ptr();
90 virtual CORBA::Boolean exist()
override;
95 std::string getName()
const;
102 const std::string getStrType();
112 #ifndef DISABLE_REST_API
114 virtual Poco::JSON::Object::Ptr httpGet(
const Poco::URI::QueryParameters& p )
override;
115 virtual Poco::JSON::Object::Ptr httpHelp(
const Poco::URI::QueryParameters& p )
override;
123 uniset::Message::Priority p = uniset::Message::High )
override;
125 friend std::ostream& operator<<(std::ostream& os,
UniSetObject& obj );
129 std::shared_ptr<UInterface>
ui;
132 std::weak_ptr<UniSetManager> mymngr;
168 virtual void sigterm(
int signo );
175 void thread(
bool create );
205 #ifndef DISABLE_REST_API
207 virtual Poco::JSON::Object::Ptr httpGetMyInfo( Poco::JSON::Object::Ptr root );
208 Poco::JSON::Object::Ptr request_conf(
const std::string& req,
const Poco::URI::QueryParameters& p );
209 Poco::JSON::Object::Ptr request_conf_name(
const std::string& name,
const std::string& props );
214 friend class UniSetManager;
215 friend class UniSetActivator;
220 bool init(
const std::weak_ptr<UniSetManager>& om );
228 void unregistration();
232 pid_t msgpid = { 0 };
233 bool regOK = {
false };
234 std::atomic_bool active;
237 std::shared_ptr<UniSetTimer> tmr;
239 CORBA::Object_var oref;
244 std::shared_ptr< ThreadCreator<UniSetObject> > thr;
248 MQMutex mqueueMedium;
251 std::atomic_bool a_working;
252 std::mutex m_working;
253 std::condition_variable cv_working;
Definition: CallbackTimer.h:29
virtual void processingMessage(const uniset::VoidMessage *msg)
Definition: UniSetObject.cc:820
bool isActive() const
Definition: UniSetObject.cc:191
Definition: MessageType.h:166
virtual bool activateObject()
Активизация объекта (переопределяется для необходимых действий после активизации) ...
Definition: UniSetObject.cc:537
void onThread()
Definition: UniSetObject.cc:566
Definition: UHttpRequestHandler.h:81
Definition: UniSetObject.h:73
void offThread()
Definition: UniSetObject.cc:561
std::shared_ptr< UInterface > ui
Definition: UniSetObject.h:129
void setID(uniset::ObjectId id)
Definition: UniSetObject.cc:167
CORBA::Object_ptr ObjectPtr
Definition: UniSetTypes.h:84
size_t getMaxSizeOfMessageQueue() const
Definition: UniSetObject.cc:186
virtual timeout_t askTimer(uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
Definition: UniSetObject.cc:878
void setMaxSizeOfMessageQueue(size_t s)
Definition: UniSetObject.cc:179
std::list< std::shared_ptr< UniSetObject > > ObjectsList
Definition: UniSetObject.h:54
virtual void callback()
Definition: UniSetObject.cc:799
long TimerId
Definition: UniSetTypes_i.idl:32
void thread(bool create)
Definition: UniSetObject.cc:556
void setThreadPriority(Poco::Thread::Priority p)
Definition: UniSetObject.cc:371
Definition: MessageType.h:122
Definition: UniSetTypes_i.idl:44
void termWaiting()
Definition: UniSetObject.cc:365
Definition: MessageType.h:86
virtual void push(const uniset::TransportMessage &msg) override
поместить сообщение в очередь
Definition: UniSetObject.cc:377
uniset::ObjectPtr getRef() const
Definition: UniSetObject.cc:519
size_t countMessages()
Definition: UniSetObject.cc:525
Definition: MessageType.h:209
size_t getCountOfLostMessages() const
Definition: UniSetObject.cc:530
virtual void sigterm(int signo)
Definition: UniSetObject.cc:547
virtual VoidMessagePtr waitMessage(timeout_t msec=UniSetTimer::WaitUpTime)
Definition: UniSetObject.cc:216
string< SizeOfObjectType > ObjectType
Definition: UniSetTypes_i.idl:33
Definition: UniSetTypes_i.idl:64
Definition: LT_Object.h:96
virtual bool deactivateObject()
Деактивиция объекта (переопределяется для необходимых действий перед деактивацией) ...
Definition: UniSetObject.cc:542
VoidMessagePtr receiveMessage()
Definition: UniSetObject.cc:205
void setActive(bool set)
Definition: UniSetObject.cc:196
long ObjectId
Definition: UniSetTypes_i.idl:30
static const timeout_t WaitUpTime
Definition: PassiveTimer.h:69