Skip to content
Snippets Groups Projects
Commit 3f9227e3 authored by florian's avatar florian
Browse files

WIP: Add errors, warnings, and infos to Parent

parent aa452a69
No related branches found
No related tags found
1 merge request!4ENH: Allow insertion and deletion of single entities
Pipeline #11113 failed
......@@ -54,6 +54,8 @@ public:
}
friend class Entity;
friend class Parent;
friend class Property;
friend class Messages;
private:
......@@ -74,6 +76,8 @@ public:
}
friend class Entity;
friend class Parent;
friend class Property;
private:
inline Messages() : wrapped(nullptr){};
......@@ -139,15 +143,27 @@ public:
/**
* Return the error messages of this parent.
*/
[[nodiscard]] inline auto GetErrors() const -> const Messages &;
[[nodiscard]] inline auto GetErrors() const -> const Messages & {
return errors;
}
[[nodiscard]] inline auto HasErrors() const -> bool {
return this->errors.wrapped->size() > 0;
}
/**
* Return the warning messages of this parent.
*/
[[nodiscard]] inline auto GetWarnings() const -> const Messages &;
[[nodiscard]] inline auto GetWarnings() const -> const Messages & {
return warnings;
}
[[nodiscard]] inline auto HasWarnings() const -> bool {
return this->warnings.wrapped->size() > 0;
}
/**
* Return the info messages of this parent.
*/
[[nodiscard]] inline auto GetInfos() const -> const Messages &;
[[nodiscard]] inline auto GetInfos() const -> const Messages & {
return infos;
}
friend class Entity;
friend class Parents;
......@@ -169,6 +185,9 @@ private:
* Message which serves as storage backend.
*/
mutable caosdb::entity::v1alpha1::Parent *wrapped;
Messages errors;
Messages warnings;
Messages infos;
};
/**
......
......@@ -28,7 +28,11 @@ using ProtoParent = caosdb::entity::v1alpha1::Parent;
using ProtoEntity = caosdb::entity::v1alpha1::Entity;
using caosdb::utility::get_arena;
Parent::Parent() : wrapped(Parent::CreateProtoParent()) {}
Parent::Parent() : wrapped(Parent::CreateProtoParent()) {
errors.wrapped = this->wrapped->mutable_errors();
warnings.wrapped = this->wrapped->mutable_warnings();
infos.wrapped = this->wrapped->mutable_infos();
}
auto Parent::CreateProtoParent() -> ProtoParent * {
return google::protobuf::Arena::CreateMessage<ProtoParent>(get_arena());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment