Go to the documentation of this file. 1 #ifndef CommandExecutionResult_h
2 #define CommandExecutionResult_h
5 #include "../CommandParamsSpec.h"
10 #define COMMAND_RESULT_JSON_SERIALIZER(TClass, ...) \
12 bool __registerCommandResultJsonSerializer_##TClass = registerCommandDataJsonSerializer(typeid(TClass), [](const any &objectAny) { \
13 auto logger = CscLogger::getForCategory(#TClass "JsonSerializerFunc"); \
14 const TClass *object = anyToPointer<TClass>(objectAny); \
15 optional<JsonSerializableData> result = {}; \
16 if (object != nullptr) { \
17 map<string, JsonSerializableData> jsonMap; \
18 FOR_EACH(FIELDS_ASSIGN_INTO_JSONMAP_PRINT_NOTYPE, __VA_ARGS__) \
28 ENUM(CscCommandResultType,
57 virtual CscCommandResultType getType()
const = 0;
59 virtual string toSummary()
const;
65 hasPointersOwnership = hasPointersOwnership && !retainData;
71 mutable bool hasPointersOwnership =
true;
79 CscCommandResultType getType()
const override;
80 string encodeToString()
const override;
81 string toSummary()
const override;
82 double getValue()
const;
92 template <
class TResult>
100 function<optional<JsonSerializableData>(
const any &
object)> serializer = getCommandDataJsonSerializer<TResult>();
101 optional<JsonSerializableData> resultJsonValue = serializer(value);
102 if (!resultJsonValue) {
114 const TResult *value;
117 template <
class TResult>
126 function<optional<JsonSerializableData>(
const any &
object)> serializer = getCommandDataJsonSerializer<TResult>();
127 vector<JsonSerializableData> jsonList;
128 for (
const TResult *item : value) {
129 optional<JsonSerializableData> resultJsonValue = serializer(item);
130 if (resultJsonValue.has_value()) {
131 jsonList.push_back(resultJsonValue.value());
133 jsonList.push_back(
nullptr);
145 const vector<const TResult *> value;
153 CscCommandResultType getType()
const override;
154 string encodeToString()
const override;
155 string toSummary()
const override;
156 bool getValue()
const;
168 CscCommandResultType getType()
const override;
169 string encodeToString()
const override;
170 string toSummary()
const override;
171 long long getValue()
const;
183 CscCommandResultType getType()
const override;
184 string encodeToString()
const override;
185 string toSummary()
const override;
186 unsigned long long getValue()
const;
190 unsigned long long value;
string commandResultTypeToString(CscCommandResultType type)
Definition: CommandExecutionResult.cpp:6
Definition: CommandExecutionResult.h:148
string doubleArrayToString(double *doubleArray, int size)
Definition: conscience_util.cpp:74
CSC_DLL_IMPORTEXPORT CscCommandResultType getType() const override
Definition: CommandExecutionResult.h:124
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
CSC_DLL_IMPORTEXPORT CscCommandExecutionResultList(const vector< const TResult * > &value)
Definition: CommandExecutionResult.h:120
Definition: CommandExecutionResult.h:178
CscCommandExecutionResult * doClone() const override
Definition: CommandExecutionResult.h:141
ENUM(CscCommandResultType, RESULT_NONE, RESULT_SEQUENCE, RESULT_POSITIONS, RESULT_FILE, RESULT_STRING, RESULT_BINARY, RESULT_OBJECT, RESULT_LIST, RESULT_BOOL, RESULT_LONG, RESULT_UNSIGNEDLONG, RESULT_DOUBLEFLOAT)
virtual string encodeToString() const
Definition: CommandExecutionResult.h:52
Definition: CscCommandMetadataBuilder.h:26
Definition: CommandExecutionResult.h:163
CSC_DLL_IMPORTEXPORT DoubleSizedArray encode() const override
Definition: CommandExecutionResult.h:123
CscCommandExecutionResult * doClone() const override
Definition: CommandExecutionResult.h:110
string jsonSerializableDataToString(JsonSerializableData data)
Definition: json.cpp:753
std::string encode(const std::string &bin, const std::array< char, 64 > &alphabet, const std::string &fill)
Definition: base.h:132
CSC_DLL_IMPORTEXPORT CscCommandExecutionResultList(const vector< TResult * > &value)
Definition: CommandExecutionResult.h:121
CSC_DLL_IMPORTEXPORT CscCommandResultType getType() const override
Definition: CommandExecutionResult.h:98
double * array
Definition: conscience_util.h:608
CSC_DLL_IMPORTEXPORT string encodeToString() const override
Definition: CommandExecutionResult.h:99
Definition: CommandExecutionResult.h:74
bool hasPointersOwnership
Definition: CommandExecutionResult.h:71
CSC_DLL_IMPORTEXPORT string toSummary() const override
Definition: CommandExecutionResult.h:107
string vectorToJson(const vector< JsonSerializableData > &list, bool noNewLines)
Definition: json.cpp:815
CSC_DLL_IMPORTEXPORT string encodeToString() const override
Definition: CommandExecutionResult.h:125
unsigned size
Definition: conscience_util.h:609
CSC_DLL_IMPORTEXPORT CscCommandExecutionResultObject(const TResult *value)
Definition: CommandExecutionResult.h:95
Definition: conscience_util.h:607
type
Generic JSON types used in JWTs.
Definition: jwt.h:1794
virtual CscCommandExecutionResult * clone(bool retainData) const
Definition: CommandExecutionResult.h:64
Definition: CommandExecutionResult.h:44
CSC_DLL_IMPORTEXPORT string toSummary() const override
Definition: CommandExecutionResult.h:138
CSC_DLL_IMPORTEXPORT DoubleSizedArray encode() const override
Definition: CommandExecutionResult.h:97
const CSC_DLL_IMPORTEXPORT vector< const TResult * > & getValue() const
Definition: CommandExecutionResult.h:139
vector< const T * > * vectorOfPointerToConst(vector< T * > *theVector)
Definition: conscience_util.h:318
CSC_DLL_IMPORTEXPORT ~CscCommandExecutionResultList() override
Definition: CommandExecutionResult.h:122
Definition: CommandExecutionResult.h:93
#define deleteItems(vectorOfItems)
Definition: conscience_util.h:33
CSC_DLL_IMPORTEXPORT ~CscCommandExecutionResultObject() override
Definition: CommandExecutionResult.h:96
Definition: CommandExecutionResult.h:118
const CSC_DLL_IMPORTEXPORT TResult * getValue() const
Definition: CommandExecutionResult.h:108