##// END OF EJS Templates
Updates model after an event has been created through the colored zone
Updates model after an event has been created through the colored zone

File last commit:

r1211:08e858e2cf84
r1262:99c1ba5e139b
Show More
FuzzingOperations.h
49 lines | 1.7 KiB | text/x-c | CLexer
/ plugins / amda / tests / FuzzingOperations.h
Alexandre Leroux
Defines fuzzing operations...
r1202 #ifndef SCIQLOP_FUZZINGOPERATIONS_H
#define SCIQLOP_FUZZINGOPERATIONS_H
#include "FuzzingDefs.h"
#include <memory>
#include <set>
#include <QLoggingCategory>
#include <QMetaType>
Q_DECLARE_LOGGING_CATEGORY(LOG_FuzzingOperations)
class Variable;
class VariableController;
/**
* Enumeration of types of existing fuzzing operations
*/
Alexandre Leroux
Fixes clang-format for resource files
r1211 enum class FuzzingOperationType { CREATE };
Alexandre Leroux
Defines fuzzing operations...
r1202
/// Interface that represents an operation that can be executed during a fuzzing test
struct IFuzzingOperation {
virtual ~IFuzzingOperation() noexcept = default;
Alexandre Leroux
Fixes clang-format for resource files
r1211 /// Checks if the operation can be executed according to the current state of the variable
/// passed in parameter
Alexandre Leroux
Defines fuzzing operations...
r1202 virtual bool canExecute(std::shared_ptr<Variable> variable) const = 0;
/// Executes the operation on the variable passed in parameter
/// @param variable the variable on which to execute the operation
/// @param variableController the controller associated to the operation
/// @param properties properties that can be used to configure the operation
Alexandre Leroux
Fixes clang-format for resource files
r1211 /// @remarks variable is passed as a reference because, according to the operation, it can be
/// modified (in/out parameter)
virtual void execute(std::shared_ptr<Variable> &variable,
VariableController &variableController,
const Properties &properties = {}) const = 0;
Alexandre Leroux
Defines fuzzing operations...
r1202 };
/// Factory of @sa IFuzzingOperation
struct FuzzingOperationFactory {
/// Creates a fuzzing operation from a type
static std::unique_ptr<IFuzzingOperation> create(FuzzingOperationType type);
};
using OperationsTypes = std::set<FuzzingOperationType>;
Q_DECLARE_METATYPE(OperationsTypes)
#endif // SCIQLOP_FUZZINGOPERATIONS_H