6 class OperationExpression;
12 enum State{sNOTPREPARED,sPREPARED, sPREPAREFAILED};
18 virtual bool isValid()
const;
29 typedef QScopedPointer<OperationImplementation> SPOperationImplementation;
30 typedef std::function<Ilwis::OperationImplementation *(quint64 metaid, const OperationExpression&)> CreateOperation;
41 SPOperationImplementation& operator->();
42 const SPOperationImplementation& operator->()
const;
44 template<
typename T>
static T calculate(
const QString& name,
const QString& txt){
51 ok = op->execute(&ctx,symtbl);
54 QVariant var = symtbl.getValue(name);
56 return var.value<T>();
65 static std::nullptr_t registerOperation(quint64
id, Ilwis::CreateOperation op);
68 SPOperationImplementation _operation;
75 #define NEW_OPERATION(name) \
77 static name *dummy_operation;
79 #define REGISTER_OPERATION(name) \
80 name *name::dummy_operation = Operation::registerOperation(name::createMetadata(),name::create);