implemented lazy loading for object_ptr and belongs_to
This commit is contained in:
@@ -15,14 +15,19 @@ add_library(matador-core STATIC
|
||||
../../include/matador/net/socket_interrupter.hpp
|
||||
../../include/matador/object/attribute.hpp
|
||||
../../include/matador/object/basic_object_info.hpp
|
||||
../../include/matador/object/basic_repository.hpp
|
||||
../../include/matador/object/error_code.hpp
|
||||
../../include/matador/object/foreign_node_completer.hpp
|
||||
../../include/matador/object/internal/observer_list_copy_creator.hpp
|
||||
../../include/matador/object/internal/observer_list_creator.hpp
|
||||
../../include/matador/object/many_to_many_relation.hpp
|
||||
../../include/matador/object/object.hpp
|
||||
../../include/matador/object/object_generator.hpp
|
||||
../../include/matador/object/object_info.hpp
|
||||
../../include/matador/object/object_proxy.hpp
|
||||
../../include/matador/object/object_ptr.hpp
|
||||
../../include/matador/object/object_resolver.hpp
|
||||
../../include/matador/object/object_resolver_factory.hpp
|
||||
../../include/matador/object/observer.hpp
|
||||
../../include/matador/object/primary_key_resolver.hpp
|
||||
../../include/matador/object/relation_completer.hpp
|
||||
@@ -31,7 +36,6 @@ add_library(matador-core STATIC
|
||||
../../include/matador/object/repository_node.hpp
|
||||
../../include/matador/object/repository_node_iterator.hpp
|
||||
../../include/matador/object/restriction.hpp
|
||||
../../include/matador/sql/statement_cache.hpp
|
||||
../../include/matador/utils/access.hpp
|
||||
../../include/matador/utils/attribute_reader.hpp
|
||||
../../include/matador/utils/attribute_writer.hpp
|
||||
@@ -53,6 +57,7 @@ add_library(matador-core STATIC
|
||||
../../include/matador/utils/file.hpp
|
||||
../../include/matador/utils/foreign_attributes.hpp
|
||||
../../include/matador/utils/identifier.hpp
|
||||
../../include/matador/utils/identifier_to_value_converter.hpp
|
||||
../../include/matador/utils/leader_follower_thread_pool.hpp
|
||||
../../include/matador/utils/library.hpp
|
||||
../../include/matador/utils/macro_map.hpp
|
||||
@@ -78,6 +83,7 @@ add_library(matador-core STATIC
|
||||
logger/rotating_file_sink.cpp
|
||||
object/attribute.cpp
|
||||
object/basic_object_info.cpp
|
||||
object/basic_repository.cpp
|
||||
object/error_code.cpp
|
||||
object/foreign_node_completer.cpp
|
||||
object/object.cpp
|
||||
@@ -95,6 +101,7 @@ add_library(matador-core STATIC
|
||||
utils/file.cpp
|
||||
utils/foreign_attributes.cpp
|
||||
utils/identifier.cpp
|
||||
utils/identifier_to_value_converter.cpp
|
||||
utils/leader_follower_thread_pool.cpp
|
||||
utils/library.cpp
|
||||
utils/message_bus.cpp
|
||||
@@ -106,10 +113,6 @@ add_library(matador-core STATIC
|
||||
utils/uuid.cpp
|
||||
utils/value.cpp
|
||||
utils/version.cpp
|
||||
../../include/matador/object/internal/observer_list_creator.hpp
|
||||
../../include/matador/object/internal/observer_list_copy_creator.hpp
|
||||
../../include/matador/object/basic_repository.hpp
|
||||
object/basic_repository.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(matador-core ${CMAKE_DL_LIBS})
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
#include "matador/utils/identifier_to_value_converter.hpp"
|
||||
|
||||
namespace matador::utils {
|
||||
value identifier_to_value_converter::convert(const identifier &id) {
|
||||
id.serialize(*this);
|
||||
|
||||
return value_;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(int8_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(int16_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(int32_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(int64_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(uint8_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(uint16_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(uint32_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(uint64_t &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(const char *x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(std::string &x, const field_attributes &) {
|
||||
value_ = x;
|
||||
}
|
||||
|
||||
void identifier_to_value_converter::serialize(null_type_t &/*x*/, const field_attributes &) {
|
||||
value_.type(basic_type::Null);
|
||||
}
|
||||
}
|
||||
@@ -39,6 +39,14 @@ value &value::operator=(value &&x) noexcept {
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool value::operator==(const value &rhs) const {
|
||||
return type_ == rhs.type_ && value_ == rhs.value_;
|
||||
}
|
||||
|
||||
bool value::operator!=(const value &rhs) const {
|
||||
return !operator==(rhs);
|
||||
}
|
||||
|
||||
std::string value::str() const {
|
||||
return as<std::string>().value_or("");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user