载入中...
搜索中...
未找到
ConversationAuthoring.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <string>
8#include <vector>
9
10namespace eve::dialogue {
11
14public:
16 explicit ConversationDocument(std::string id = {});
19
21 const eve::dnut::SequenceAsset& asset() const { return asset_; }
23 const std::string& getId() const { return asset_.id; }
25 bool setId(const std::string& id);
27 int getVersion() const { return asset_.version; }
29 bool setVersion(int version);
31 const std::string& getEntry() const { return asset_.entry; }
33 bool setEntry(const std::string& nodeId);
34
36 int getParameterCount() const;
38 std::string getParameter(int index) const;
40 bool addParameter(const std::string& name);
42 bool removeParameter(const std::string& name);
43
45 int getNodeCount() const;
47 std::string getNodeId(int index) const;
49 bool hasNode(const std::string& nodeId) const;
51 bool addNode(const std::string& nodeId, const std::string& kind);
53 bool removeNode(const std::string& nodeId);
55 bool renameNode(const std::string& oldId, const std::string& newId);
57 std::string getNodeKind(const std::string& nodeId) const;
59 bool setNodeKind(const std::string& nodeId, const std::string& kind);
60
62 int getFieldCount(const std::string& nodeId) const;
64 std::string getFieldName(const std::string& nodeId, int index) const;
66 std::string getFieldKind(const std::string& nodeId, int index) const;
68 std::string getField(const std::string& nodeId, const std::string& field) const;
70 bool setField(const std::string& nodeId, const std::string& field, const std::string& value);
71
73 int getRouteCount(const std::string& nodeId) const;
75 std::string getRouteLabel(const std::string& nodeId, int index) const;
77 std::string getRouteTarget(const std::string& nodeId, int index) const;
79 bool addRoute(const std::string& nodeId, const std::string& label, const std::string& target);
81 bool setRoute(const std::string& nodeId, int index, const std::string& label, const std::string& target);
83 bool removeRoute(const std::string& nodeId, int index);
84
86 bool validate();
88 int getDiagnosticCount() const;
90 std::string getDiagnosticSeverity(int index) const;
92 std::string getDiagnosticPath(int index) const;
94 int getDiagnosticLine(int index) const;
96 std::string getDiagnosticMessage(int index) const;
97
98private:
106 eve::dnut::SequenceNode* findNode(const std::string& nodeId);
114 const eve::dnut::SequenceNode* findNode(const std::string& nodeId) const;
115 bool fail(const std::string& message);
116
118 std::vector<ConversationDiagnostic> diagnostics_;
119 std::string failureMessage_;
120};
121
122} // namespace eve::dialogue
LogicalId target
double value
std::string label
std::string nodeId
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string message
TokenKind kind
std::string name
uint32_t index
Mutable, UI-neutral conversation document for custom editor composition.
const std::string & getId() const
Return the stable conversation identifier.
int getVersion() const
Return the asset schema version.
const std::string & getEntry() const
Return the entry node identifier.
const eve::dnut::SequenceAsset & asset() const
Return the editable runtime asset.
Immutable, parameterized and versioned compiled sequence.
One immutable step of a compiled sequence.