VariantValue& VariantValue::operator=(VariantValue&& rhs) { //std::cout << "move assignemnt operator called" << std::endl; m_deleter(this); m_deleter = rhs.m_deleter; m_getter = rhs.m_getter; if (rhs.m_deleter == &deleterINT32) { new(&m_int32) ValueHolder<std::int32_t>(std::move(rhs.m_int32)); } else if (rhs.m_deleter == &deleterDOUBLE) { new(&m_double) ValueHolder<double>(std::move(rhs.m_double)); } else if (rhs.m_deleter == &deleterDEFAULT) { new(&m_impl) shared_ptr<IValueHolder>(std::move(rhs.m_impl)); } else if (rhs.m_deleter == &deleterUINT8) { new(&m_uint8) ValueHolder<std::uint8_t>(std::move(rhs.m_uint8)); } else if (rhs.m_deleter == &deleterINT8) { new(&m_int8) ValueHolder<std::int8_t>(std::move(rhs.m_int8)); } else if (rhs.m_deleter == &deleterUINT16) { new(&m_uint16) ValueHolder<std::uint16_t>(std::move(rhs.m_uint16)); } else if (rhs.m_deleter == &deleterINT16) { new(&m_int16) ValueHolder<std::int16_t>(std::move(rhs.m_int16)); } else if (rhs.m_deleter == &deleterUINT32) { new(&m_uint32) ValueHolder<std::uint32_t>(std::move(rhs.m_uint32)); } else if (rhs.m_deleter == &deleterUINT64) { new(&m_uint64) ValueHolder<std::uint64_t>(std::move(rhs.m_uint64)); } else if (rhs.m_deleter == &deleterINT64) { new(&m_int64) ValueHolder<std::int64_t>(std::move(rhs.m_int64)); } else if (rhs.m_deleter == &deleterFLOAT) { new(&m_float) ValueHolder<float>(std::move(rhs.m_float)); } else if (rhs.m_deleter == &deleterSTRING) { new(&m_string) ValueHolder<std::string>(std::move(rhs.m_string)); } return *this; }
void disconnect() { if (m_deleter) { m_deleter(); m_deleter = nullptr; } }
void AutotrainerSipCall::DeleteCall() { if (m_callDeleted) return; m_callDeleted = true; Close(); m_deleter(this); }
inline void Scoped<T>::reset() { if (m_resource != m_null) { ASSERT(m_deleter != nullptr); m_deleter(m_resource); m_resource = m_null; } }
VariantValue& VariantValue::operator=(const VariantValue& rhs) { //std::cout << "copy asignement operator called" << std::endl; m_deleter(this); m_deleter = rhs.m_deleter; m_getter = rhs.m_getter; if (rhs.m_deleter == &deleterINT32) { new(&m_int32) ValueHolder<std::int32_t>(rhs.m_int32); } else if (rhs.m_deleter == &deleterDOUBLE) { new(&m_double) ValueHolder<double>(rhs.m_double); } else if (rhs.m_deleter == &deleterDEFAULT) { m_deleter = deleterNULL; m_getter = getterNULL; new(&m_impl) shared_ptr<IValueHolder>(rhs.m_impl->clone()); if (m_impl.get() == nullptr) { deleterDEFAULT(this); throw std::runtime_error("type has no copy constructor"); } m_deleter = deleterDEFAULT; m_getter = getterDEFAULT; } else if (rhs.m_deleter == &deleterUINT8) { new(&m_uint8) ValueHolder<std::uint8_t>(rhs.m_uint8); } else if (rhs.m_deleter == &deleterINT8) { new(&m_int8) ValueHolder<std::int8_t>(rhs.m_int8); } else if (rhs.m_deleter == &deleterUINT16) { new(&m_uint16) ValueHolder<std::uint16_t>(rhs.m_uint16); } else if (rhs.m_deleter == &deleterINT16) { new(&m_int16) ValueHolder<std::int16_t>(rhs.m_int16); } else if (rhs.m_deleter == &deleterUINT32) { new(&m_uint32) ValueHolder<std::uint32_t>(rhs.m_uint32); } else if (rhs.m_deleter == &deleterUINT64) { new(&m_uint64) ValueHolder<std::uint64_t>(rhs.m_uint64); } else if (rhs.m_deleter == &deleterINT64) { new(&m_int64) ValueHolder<std::int64_t>(rhs.m_int64); } else if (rhs.m_deleter == &deleterFLOAT) { new(&m_float) ValueHolder<float>(rhs.m_float); } else if (rhs.m_deleter == &deleterSTRING) { new(&m_string) ValueHolder<std::string>(rhs.m_string); } return *this; }
MappedMemory::~MappedMemory() { m_deleter(*this); }