Adding Support for BooleanVar
[satune.git] / src / AlloyEnc / signatureenc.h
1 #ifndef SIGNATUREENC_H
2 #define SIGNATUREENC_H
3
4 #include "classlist.h"
5 #include "structs.h"
6 #include "cppvector.h"
7
8 class SignatureEnc {
9 public:
10         SignatureEnc(AlloyEnc *_alloyEncoder);
11         ~SignatureEnc();
12         void setValue(uint id, uint64_t value);
13         ElementSig *getElementSignature(Element *element);
14         BooleanSig *getBooleanSignature(Boolean *bvar);
15         int getAlloyIntScope();
16         uint64_t getValue(Element *element);
17 private:
18         void updateMaxValue(Set *set);
19         CloneMap encoded;
20         Vector<Signature*> signatures;
21         AlloyEnc *alloyEncoder;
22         uint64_t maxValue;
23 };
24 #endif