OmniaFramework/src/ostd/BaseObject.cpp

62 lines
1.4 KiB
C++
Executable file

#include "BaseObject.hpp"
#include "Utils.hpp"
#include "Defines.hpp"
#include "Signals.hpp"
#include "IOHandlers.hpp"
namespace ostd
{
BaseObject BaseObject::s_invalid_obj { false };
BaseObject::BaseObject(const BaseObject& copy)
{
m_uid = copy.m_uid;
m_oid = copy.m_oid;
m_valid = copy.m_valid;
m_typeName = copy.m_typeName;
m_signalsEnabled = copy.m_signalsEnabled;
}
BaseObject& BaseObject::operator=(const BaseObject& copy)
{
m_uid = copy.m_uid;
m_oid = copy.m_oid;
m_valid = copy.m_valid;
m_typeName = copy.m_typeName;
m_signalsEnabled = copy.m_signalsEnabled;
return *this;
}
std::ostream& operator<<(std::ostream& out, const BaseObject& val)
{
out << val.toString();
return out;
}
void BaseObject::print(bool newLine, OutputHandlerBase* __destination) const
{
if (__destination == nullptr)
std::cout << toString() << (newLine ? "\n" : "");
else
{
__destination->p(toString());
if (newLine) __destination->nl();
}
}
String BaseObject::getObjectHeaderString(void) const
{
return StringEditor(getTypeName()).add("->uid=").addi(getID()).add("/oid=").addi(getCompareOID()).add("/valid=").add(STR_BOOL(isValid())).str();
}
void BaseObject::connectSignal(uint32_t signal_id)
{
SignalHandler::connect(*this, signal_id);
}
void BaseObject::__handle_signal(tSignal& signal)
{
if (m_signalsEnabled)
handleSignal(signal);
}
}