zeus/zeus/WebObj.hpp

38 lines
1.1 KiB
C++

/** @file
* @author Edouard DUPIN
* @copyright 2016, Edouard DUPIN, all right reserved
* @license MPL v2.0 (see license file)
*/
#pragma once
//#include <zeus/WebServer.hpp>
#include <etk/types.hpp>
#include <ememory/memory.hpp>
#include <zeus/message/Message.hpp>
namespace zeus {
class WebServer;
class WebObj : public ememory::EnableSharedFromThis<zeus::WebObj> {
protected:
ememory::SharedPtr<zeus::WebServer> m_interfaceWeb;
uint16_t m_id;
uint16_t m_objectId;
std::vector<uint32_t> m_listRemoteConnected;
public:
WebObj(const ememory::SharedPtr<zeus::WebServer>& _iface, uint16_t _id, uint16_t _objectId);
virtual ~WebObj();
uint16_t getInterfaceId();
uint16_t getObjectId();
uint32_t getFullId();
virtual void receive(ememory::SharedPtr<zeus::Message> _value);
virtual void display();
void addRemote(uint32_t _id);
bool removeOwnership(uint32_t _id);
void rmRemoteInterface(uint16_t _id);
bool haveRemoteConnected() const;
bool transferOwnership(uint32_t _sourceAddress, uint32_t _destinataireAddress);
};
}