载入中...
搜索中...
未找到
SocialDocument.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
7
8#include <map>
9#include <memory>
10#include <string>
11#include <vector>
12
13namespace eve::social {
14class SocialGraph;
15}
16
17namespace eve::social_editing {
23using editing::Result;
34
38 std::string label;
39 std::string category;
40};
41
47 std::string kind = "relation";
48 std::string type;
49 double weight = 1.0;
50};
51
54 public virtual IEditableTarget,
57public:
59 static CapabilityId editorCapabilityId() { return CapabilityId("eve.editor.target.social-graph"); }
61 explicit SocialDocumentTarget(std::string id);
63 TargetId targetId() const override { return TargetId(id_); }
65 TargetDescriptor describe() const override;
68 void* queryCapability(const CapabilityId& capability) override;
70 Result<void> applyDomainOperation(const DomainOperation& operation) override;
72 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
74 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
76 std::vector<SocialEntityRecord> entities() const;
78 std::vector<SocialEdgeRecord> edges() const;
80 Result<DomainOperation> makeSetEntity(const SocialEntityRecord& entity) const;
82 Result<DomainOperation> makeDeleteEntity(const StableId& id) const;
84 Result<DomainOperation> makeSetEdge(const SocialEdgeRecord& edge) const;
86 Result<DomainOperation> makeDeleteEdge(const StableId& id) const;
88 std::vector<EditorDiagnostic> validate() const;
90 EditorValue snapshotValue() const;
92 Result<void> loadSnapshot(const EditorValue& snapshot);
93
94private:
95 std::string id_;
96 std::map<StableId, SocialEntityRecord> entities_;
97 std::map<StableId, SocialEdgeRecord> edges_;
98};
99
102public:
104 Result<void> apply(const SocialDocumentTarget& document, social::SocialGraph* runtime) const;
105};
106
107} // namespace eve::social_editing
ActionParameterOperation operation
#define EVENGINE_API_BACKENDS
Definition Export.h:108
std::vector< ecs::EntityHandle > entities
const RoadEdge * edge
std::vector< int > edges
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Dirty region and revision shared by every editable document target.
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
Deterministic owning value tree shared by authoring hosts.
Indexed ownership, control, assignment, and typed-relation graph.
Definition SocialGraph.h:34
UI-neutral revisioned social graph authoring document.
TargetId targetId() const override
Target id.
static CapabilityId editorCapabilityId()
Editor capability id.
Publishes a complete validated social document to a runtime SocialGraph.
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
StrongId< StableIdTag > StableId
Definition EditingIds.h:64
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
eve::StatusCode Status
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
editing::Revision Revision
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
Severity
Stable severity of a diagnostic, independent of its display text.
Definition Diagnostic.h:20
DomainOperation public API.
EditRegion public API.
Stable discovery metadata exposed by every editable target.
Directed ownership, control, assignment or weighted relation edge.
Stable social-graph entity metadata for graph presenters.