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 );
88 virtual CORBA::Boolean exist()
override;
93 std::string getName()
const;
100 const std::string getStrType();
110 #ifndef DISABLE_REST_API 112 virtual Poco::JSON::Object::Ptr httpGet(
const Poco::URI::QueryParameters& p )
override;
113 virtual Poco::JSON::Object::Ptr httpHelp(
const Poco::URI::QueryParameters& p )
override;
118 std::shared_ptr<UniSetObject> get_ptr();
122 uniset::Message::Priority p = uniset::Message::High )
override;
124 friend std::ostream& operator<<(std::ostream& os,
UniSetObject& obj );
128 std::shared_ptr<UInterface>
ui;
130 std::weak_ptr<UniSetManager> mymngr;
167 void thread(
bool create );
197 #ifndef DISABLE_REST_API 199 virtual Poco::JSON::Object::Ptr httpGetMyInfo( Poco::JSON::Object::Ptr root );
200 Poco::JSON::Object::Ptr request_conf(
const std::string& req,
const Poco::URI::QueryParameters& p );
201 Poco::JSON::Object::Ptr request_conf_name(
const std::string& name,
const std::string& props );
212 bool init(
const std::weak_ptr<UniSetManager>& om );
220 void unregistration();
226 pid_t msgpid = { 0 };
227 bool regOK = {
false };
228 std::atomic_bool active;
231 std::unique_ptr<UniSetTimer> tmr;
233 CORBA::Object_var oref;
238 std::unique_ptr< ThreadCreator<UniSetObject> > thr;
246 std::mutex m_working;
247 std::condition_variable cv_working;
Definition: CallbackTimer.h:29
virtual void processingMessage(const uniset::VoidMessage *msg)
Definition: UniSetObject.cc:822
size_t getCountOfLostMessages() const
Definition: UniSetObject.cc:542
bool isActive() const
Definition: UniSetObject.cc:177
Definition: MessageType.h:168
virtual bool activateObject()
Активизация объекта (переопределяется для необходимых действий после активизации) ...
Definition: UniSetObject.cc:549
void onThread()
Definition: UniSetObject.cc:576
Definition: UHttpRequestHandler.h:81
Definition: UniSetObject.h:73
void offThread()
Definition: UniSetObject.cc:571
std::shared_ptr< UInterface > ui
Definition: UniSetObject.h:128
void setID(uniset::ObjectId id)
Definition: UniSetObject.cc:154
Definition: UniSetActivator.h:61
CORBA::Object_ptr ObjectPtr
Definition: UniSetTypes.h:96
size_t getMaxSizeOfMessageQueue() const
Definition: UniSetObject.cc:172
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:880
void setMaxSizeOfMessageQueue(size_t s)
Definition: UniSetObject.cc:165
std::list< std::shared_ptr< UniSetObject > > ObjectsList
Definition: UniSetObject.h:54
virtual void callback()
Definition: UniSetObject.cc:798
long TimerId
Definition: UniSetTypes_i.idl:32
uniset::ObjectPtr getRef() const
Definition: UniSetObject.cc:531
void thread(bool create)
Definition: UniSetObject.cc:566
void setThreadPriority(Poco::Thread::Priority p)
Definition: UniSetObject.cc:378
Definition: MessageType.h:124
Definition: UniSetTypes_i.idl:44
void termWaiting()
Definition: UniSetObject.cc:372
Definition: MessageType.h:88
Definition: UniSetManager.h:57
virtual void push(const uniset::TransportMessage &msg) override
поместить сообщение в очередь
Definition: UniSetObject.cc:384
size_t countMessages()
Definition: UniSetObject.cc:537
Definition: MessageType.h:211
VoidMessagePtr waitMessage(timeout_t msec=UniSetTimer::WaitUpTime)
Definition: UniSetObject.cc:202
string< SizeOfObjectType > ObjectType
Definition: UniSetTypes_i.idl:33
Definition: UniSetTypes_i.idl:64
Definition: LT_Object.h:97
virtual bool deactivateObject()
Деактивиция объекта (переопределяется для необходимых действий при завершении работы) ...
Definition: UniSetObject.cc:554
VoidMessagePtr receiveMessage()
Definition: UniSetObject.cc:191
void setActive(bool set)
Definition: UniSetObject.cc:182
long ObjectId
Definition: UniSetTypes_i.idl:30
static const timeout_t WaitUpTime
Definition: PassiveTimer.h:69