2
* File: CoveredMarkingVisitor.h
3
* Author: Peter G. Jensen
5
* Created on 17 June 2015, 00:04
8
#ifndef COVEREDMARKINGVISITOR_H
9
#define COVEREDMARKINGVISITOR_H
11
#include "binarywrapper.h"
16
#include "MarkingEncoder.h"
17
#include "NonStrictMarkingBase.hpp"
18
#include "NonStrictMarking.hpp"
21
using namespace ptrie;
22
namespace VerifyTAPN {
23
namespace DiscreteVerification {
25
class CoveredMarkingVisitor
26
: public visitor_t<MetaData*>
28
typedef binarywrapper_t<MetaData*> encoding_t;
30
MarkingEncoder<MetaData*, NonStrictMarking>& encoder;
31
NonStrictMarking* target;
32
encoding_t scratchpad;
33
ptriepointer_t<MetaData*> match;
35
ptriepointer_t<MetaData*> _targetencoding;
38
bool target_contains_token(unsigned long long placeage, uint count);
41
CoveredMarkingVisitor(
42
MarkingEncoder<MetaData*, NonStrictMarking>& enc);
43
~CoveredMarkingVisitor();
44
virtual bool back(int index);
45
virtual bool set(int index, bool value);
46
virtual bool set_remainder(int index,
47
ptriepointer_t<MetaData*> pointer);
48
void set_target(NonStrictMarking* m, ptriepointer_t<MetaData*> me);
49
NonStrictMarking* decode();
50
bool found(){return _found;}
56
#endif /* BINARYMARKINGVISITOR_H */