Go to the documentation of this file. 1 #ifndef ConscienceEnvironmentInteractionCommand_h
2 #define ConscienceEnvironmentInteractionCommand_h
17 using std::fstream, std::stringstream, std::istringstream, std::ios;
28 using namespace result;
44 template <
class TResult = CscCommandExecutionResult>
48 if (entityReflexion !=
nullptr) {
52 LOG_TRACE(
"execute command of type: " + getTypeId());
55 if (result ==
nullptr) {
58 if (
auto resultTyped =
dynamic_cast<const TResult *
>(result)) {
59 entityReflexion = getEntityReflexion();
60 if (entityReflexion !=
nullptr) {
63 onCommandExecuted(
this);
66 const std::type_info &requestedTypeInfo =
typeid(TResult);
67 throw runtime_error(
"Invalid command result - requested: " +
getClassName(requestedTypeInfo,
true));
78 void setOriginalCommandString(
string command);
92 template <
class TResult>
106 inline static vector<CommandExecutedListener> commandExecutedListeners;
118 string toJson()
const;
121 template <
class TResult>
128 return CscCommand::execute<TResult>(environmentSimulator);
bool optional
Definition: Command.h:35
Definition: CommandExecutionResultNone.h:11
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
std::string type
Definition: Command.h:33
Definition: alerts.cpp:12
Definition: Command.h:122
std::string defaultValue
Definition: Command.h:34
Definition: CommandExecutionResultSequence.h:15
string CommandTypeId
Definition: Command.h:29
const TResult * execute(CscEnvironmentSimulator &environmentSimulator)
Definition: Command.h:45
Definition: CommandExecutionResultString.h:11
const CommandTypeId typeId
Definition: Command.h:81
const TResult * execute(CscEnvironmentSimulator &environmentSimulator)
Definition: Command.h:126
const optional< int > code
Definition: Command.h:117
string getClassName(const type_info ¶msClass, bool withNamespace)
Definition: conscience_util.cpp:585
Definition: CommandExecutionResultFile.h:8
Definition: cartographyCommands.cpp:29
function< void(CscCommand *command)> CommandExecutedListener
Definition: Command.h:75
Definition: CscEntityReflexion.h:391
string CscWorldElementId
Definition: Command.h:15
j template void())
Definition: json.hpp:4189
Definition: CommandExecutionResult.h:44
Definition: CscEnvironmentSimulator.h:31
Definition: CommandExecutionResult.h:93
Definition: Command.h:113
CscCommandTypedResult(const CommandTypeId &typeId)
Definition: Command.h:132
void onCommandExecutionStartOnEntity(const CscCommand *command, const string &entitySerialNumber)
Definition: CscCommandsProcessor.cpp:49
const string type
Definition: Command.h:116
const CscCommandExecutionResultObject< TResult > * resultObject(TResult *result)
Definition: Command.h:93
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
function< const CscCommandExecutionResult *(CscEnvironmentSimulator &environmentSimulator)> FunctionCommand
Definition: Command.h:38
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
#define LOG_TRACE(message)
Definition: conscience_log.h:189
Definition: CscSequence.h:51
void onCommandExecutedOnEntity(const CscCommand *command, const string &entitySerialNumber, const CscCommandExecutionResult *result, CscEnvironmentSimulator &environmentSimulator)
Definition: CscCommandsProcessor.cpp:60
std::string name
Definition: Command.h:32