##// END OF EJS Templates
Some refactoring on PB11 wrappers...
Some refactoring on PB11 wrappers Most sciqlop core wrappers are moved into a dedicated python module. We needs to get rid off sqpapp! All current sciqlop modules should either be stateless or act as real singletons they must not need any app to be used. This will ease testing, wrapping and usage. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1216:b9a47ff1b9cc
r1341:f18e017310bc
Show More
FuzzingOperations.h
56 lines | 1.8 KiB | text/x-c | CLexer
#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 VariableController;
/**
* Enumeration of types of existing fuzzing operations
*/
enum class FuzzingOperationType {
CREATE,
DELETE,
PAN_LEFT,
PAN_RIGHT,
ZOOM_IN,
ZOOM_OUT,
SYNCHRONIZE,
DESYNCHRONIZE
};
/// Interface that represents an operation that can be executed during a fuzzing test
struct IFuzzingOperation {
virtual ~IFuzzingOperation() noexcept = default;
/// Checks if the operation can be executed according to the current test's state for the
/// variable passed in parameter
virtual bool canExecute(VariableId variableId, const FuzzingState &fuzzingState) const = 0;
/// Executes the operation on the variable for which its identifier is passed in parameter
/// @param variableId the variable identifier
/// @param fuzzingState the current test's state on which to find the variable and execute the
/// operation
/// @param variableController the controller associated to the operation
/// @param properties properties that can be used to configure the operation
/// @remarks fuzzingState is passed as a reference because, according to the operation, it can
/// be modified (in/out parameter)
virtual void execute(VariableId variableId, FuzzingState &fuzzingState,
VariableController &variableController,
const Properties &properties = {}) const = 0;
};
/// Factory of @sa IFuzzingOperation
struct FuzzingOperationFactory {
/// Creates a fuzzing operation from a type
static std::unique_ptr<IFuzzingOperation> create(FuzzingOperationType type);
};
#endif // SCIQLOP_FUZZINGOPERATIONS_H