Move ValImpl classes into detail namespace

This commit is contained in:
Tim Wojtulewicz 2021-01-13 03:56:09 +00:00 committed by Tim Wojtulewicz
parent 42f2691251
commit a7b5915b1a

View file

@ -139,11 +139,11 @@ public:
#define UNDERLYING_ACCESSOR_DECL(ztype, ctype, name) \ #define UNDERLYING_ACCESSOR_DECL(ztype, ctype, name) \
ctype name() const; ctype name() const;
UNDERLYING_ACCESSOR_DECL(IntValImplementation, bro_int_t, AsInt) UNDERLYING_ACCESSOR_DECL(detail::IntValImplementation, bro_int_t, AsInt)
UNDERLYING_ACCESSOR_DECL(BoolVal, bool, AsBool) UNDERLYING_ACCESSOR_DECL(BoolVal, bool, AsBool)
UNDERLYING_ACCESSOR_DECL(EnumVal, int, AsEnum) UNDERLYING_ACCESSOR_DECL(EnumVal, int, AsEnum)
UNDERLYING_ACCESSOR_DECL(UnsignedValImplementation, bro_uint_t, AsCount) UNDERLYING_ACCESSOR_DECL(detail::UnsignedValImplementation, bro_uint_t, AsCount)
UNDERLYING_ACCESSOR_DECL(DoubleValImplementation, double, AsDouble) UNDERLYING_ACCESSOR_DECL(detail::DoubleValImplementation, double, AsDouble)
UNDERLYING_ACCESSOR_DECL(TimeVal, double, AsTime) UNDERLYING_ACCESSOR_DECL(TimeVal, double, AsTime)
UNDERLYING_ACCESSOR_DECL(IntervalVal, double, AsInterval) UNDERLYING_ACCESSOR_DECL(IntervalVal, double, AsInterval)
UNDERLYING_ACCESSOR_DECL(AddrVal, const IPAddr&, AsAddr) UNDERLYING_ACCESSOR_DECL(AddrVal, const IPAddr&, AsAddr)
@ -343,6 +343,8 @@ private:
extern ValManager* val_mgr; extern ValManager* val_mgr;
namespace detail {
// These are *internal* classes used to allow different publicly visible // These are *internal* classes used to allow different publicly visible
// classes to share the same low-level value (per Type::InternalType). // classes to share the same low-level value (per Type::InternalType).
// They may change or go away in the future. // They may change or go away in the future.
@ -383,21 +385,22 @@ protected:
double double_val; double double_val;
}; };
} // namespace detail
class IntVal final : public IntValImplementation { class IntVal final : public detail::IntValImplementation {
public: public:
IntVal(bro_int_t v) IntVal(bro_int_t v)
: IntValImplementation(base_type(TYPE_INT), v) : detail::IntValImplementation(base_type(TYPE_INT), v)
{} {}
// No Get() method since in the current implementation the // No Get() method since in the current implementation the
// inherited one serves that role. // inherited one serves that role.
}; };
class BoolVal final : public IntValImplementation { class BoolVal final : public detail::IntValImplementation {
public: public:
BoolVal(bro_int_t v) BoolVal(bro_int_t v)
: IntValImplementation(base_type(TYPE_BOOL), v) : detail::IntValImplementation(base_type(TYPE_BOOL), v)
{} {}
BoolVal(bool b) BoolVal(bool b)
: BoolVal(bro_int_t(b)) : BoolVal(bro_int_t(b))
@ -406,19 +409,19 @@ public:
bool Get() const { return static_cast<bool>(int_val); } bool Get() const { return static_cast<bool>(int_val); }
}; };
class CountVal : public UnsignedValImplementation { class CountVal : public detail::UnsignedValImplementation {
public: public:
CountVal(bro_uint_t v) CountVal(bro_uint_t v)
: UnsignedValImplementation(base_type(TYPE_COUNT), v) : detail::UnsignedValImplementation(base_type(TYPE_COUNT), v)
{} {}
// Same as for IntVal: no Get() method needed. // Same as for IntVal: no Get() method needed.
}; };
class DoubleVal : public DoubleValImplementation { class DoubleVal : public detail::DoubleValImplementation {
public: public:
DoubleVal(double v) DoubleVal(double v)
: DoubleValImplementation(base_type(TYPE_DOUBLE), v) : detail::DoubleValImplementation(base_type(TYPE_DOUBLE), v)
{} {}
// Same as for IntVal: no Get() method needed. // Same as for IntVal: no Get() method needed.
@ -431,10 +434,10 @@ public:
#define Hours (60*Minutes) #define Hours (60*Minutes)
#define Days (24*Hours) #define Days (24*Hours)
class IntervalVal final : public DoubleValImplementation { class IntervalVal final : public detail::DoubleValImplementation {
public: public:
IntervalVal(double quantity, double units = Seconds) IntervalVal(double quantity, double units = Seconds)
: DoubleValImplementation(base_type(TYPE_INTERVAL), : detail::DoubleValImplementation(base_type(TYPE_INTERVAL),
quantity * units) quantity * units)
{} {}
@ -444,15 +447,15 @@ protected:
void ValDescribe(ODesc* d) const override; void ValDescribe(ODesc* d) const override;
}; };
class TimeVal final : public DoubleValImplementation { class TimeVal final : public detail::DoubleValImplementation {
public: public:
TimeVal(double t) : DoubleValImplementation(base_type(TYPE_TIME), t) TimeVal(double t) : detail::DoubleValImplementation(base_type(TYPE_TIME), t)
{} {}
// Same as for IntVal: no Get() method needed. // Same as for IntVal: no Get() method needed.
}; };
class PortVal final : public UnsignedValImplementation { class PortVal final : public detail::UnsignedValImplementation {
public: public:
ValPtr SizeVal() const override; ValPtr SizeVal() const override;
@ -1324,7 +1327,7 @@ private:
std::vector<ValPtr>* record_val; std::vector<ValPtr>* record_val;
}; };
class EnumVal final : public IntValImplementation { class EnumVal final : public detail::IntValImplementation {
public: public:
ValPtr SizeVal() const override; ValPtr SizeVal() const override;
@ -1336,7 +1339,7 @@ protected:
friend IntrusivePtr<T> make_intrusive(Ts&&... args); friend IntrusivePtr<T> make_intrusive(Ts&&... args);
EnumVal(EnumTypePtr t, bro_int_t i) EnumVal(EnumTypePtr t, bro_int_t i)
: IntValImplementation(std::move(t), i) : detail::IntValImplementation(std::move(t), i)
{} {}
void ValDescribe(ODesc* d) const override; void ValDescribe(ODesc* d) const override;
@ -1500,11 +1503,11 @@ private:
inline ctype Val::name() const \ inline ctype Val::name() const \
{ return dynamic_cast<const ztype*>(this)->Get(); } { return dynamic_cast<const ztype*>(this)->Get(); }
UNDERLYING_ACCESSOR_DEF(IntValImplementation, bro_int_t, AsInt) UNDERLYING_ACCESSOR_DEF(detail::IntValImplementation, bro_int_t, AsInt)
UNDERLYING_ACCESSOR_DEF(BoolVal, bool, AsBool) UNDERLYING_ACCESSOR_DEF(BoolVal, bool, AsBool)
UNDERLYING_ACCESSOR_DEF(EnumVal, int, AsEnum) UNDERLYING_ACCESSOR_DEF(EnumVal, int, AsEnum)
UNDERLYING_ACCESSOR_DEF(UnsignedValImplementation, bro_uint_t, AsCount) UNDERLYING_ACCESSOR_DEF(detail::UnsignedValImplementation, bro_uint_t, AsCount)
UNDERLYING_ACCESSOR_DEF(DoubleValImplementation, double, AsDouble) UNDERLYING_ACCESSOR_DEF(detail::DoubleValImplementation, double, AsDouble)
UNDERLYING_ACCESSOR_DEF(TimeVal, double, AsTime) UNDERLYING_ACCESSOR_DEF(TimeVal, double, AsTime)
UNDERLYING_ACCESSOR_DEF(IntervalVal, double, AsInterval) UNDERLYING_ACCESSOR_DEF(IntervalVal, double, AsInterval)
UNDERLYING_ACCESSOR_DEF(SubNetVal, const IPPrefix&, AsSubNet) UNDERLYING_ACCESSOR_DEF(SubNetVal, const IPPrefix&, AsSubNet)