X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_model.hpp;fp=common%2Ftrace_model.hpp;h=1b2e1f2c45a48ede154195544ff271803e0f444a;hb=eb64451efcd8100d02ec89ff2ae6ea2c78c7645b;hp=f208032d371eeb1e38d4704c07dc342203b88931;hpb=00ea41c2384c7b9cc82dd3c68a474d7f82083f5a;p=apitrace diff --git a/common/trace_model.hpp b/common/trace_model.hpp index f208032..1b2e1f2 100644 --- a/common/trace_model.hpp +++ b/common/trace_model.hpp @@ -60,13 +60,19 @@ struct StructSig { }; -struct EnumSig { - Id id; +struct EnumValue { const char *name; signed long long value; }; +struct EnumSig { + Id id; + unsigned num_values; + const EnumValue *values; +}; + + struct BitmaskFlag { const char *name; unsigned long long value; @@ -216,16 +222,11 @@ public: }; -class Enum : public Value +class Enum : public SInt { public: - Enum(const EnumSig *_sig) : sig(_sig) {} + Enum(const EnumSig *_sig, signed long long _value) : SInt(_value), sig(_sig) {} - bool toBool(void) const; - signed long long toSInt(void) const; - unsigned long long toUInt(void) const; - virtual float toFloat(void) const; - virtual double toDouble(void) const; void visit(Visitor &visitor); const EnumSig *sig;