##// END OF EJS Templates
Fix asynchrone bug with reset of the download progress state
Fix asynchrone bug with reset of the download progress state

File last commit:

r1249:b9a47ff1b9cc
r1384:cfb5a07b3479
Show More
FuzzingOperations.h
56 lines | 1.8 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 VariableController;
/**
* Enumeration of types of existing fuzzing operations
*/
Alexandre Leroux
Creates sync and desync operations and adds them to the fuzzing tests
r1238 enum class FuzzingOperationType {
CREATE,
DELETE,
PAN_LEFT,
PAN_RIGHT,
ZOOM_IN,
ZOOM_OUT,
SYNCHRONIZE,
DESYNCHRONIZE
};
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
Passes FuzzingState and variable id instead VariableState to the methods of operations
r1236 /// 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
Alexandre Leroux
Defines fuzzing operations...
r1202 /// @param variableController the controller associated to the operation
/// @param properties properties that can be used to configure the operation
Alexandre Leroux
Passes FuzzingState and variable id instead VariableState to the methods of operations
r1236 /// @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,
Alexandre Leroux
Fixes clang-format for resource files
r1211 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);
};
#endif // SCIQLOP_FUZZINGOPERATIONS_H