mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Mark a large number of common types as final that shouldn't be overrideden
This commit is contained in:
parent
c2375fc88d
commit
9c89cd4a47
11 changed files with 93 additions and 93 deletions
|
@ -34,7 +34,7 @@ typedef enum {
|
|||
#define NUM_ATTRS (int(ATTR_DEPRECATED) + 1)
|
||||
} attr_tag;
|
||||
|
||||
class Attr : public BroObj {
|
||||
class Attr final : public BroObj {
|
||||
public:
|
||||
Attr(attr_tag t, IntrusivePtr<Expr> e);
|
||||
explicit Attr(attr_tag t);
|
||||
|
@ -71,7 +71,7 @@ protected:
|
|||
};
|
||||
|
||||
// Manages a collection of attributes.
|
||||
class Attributes : public BroObj {
|
||||
class Attributes final : public BroObj {
|
||||
public:
|
||||
Attributes(attr_list* a, IntrusivePtr<BroType> t, bool in_record, bool is_global);
|
||||
~Attributes() override;
|
||||
|
|
|
@ -59,7 +59,7 @@ static inline int addr_port_canon_lt(const IPAddr& addr1, uint32_t p1,
|
|||
|
||||
namespace analyzer { class Analyzer; }
|
||||
|
||||
class Connection : public BroObj {
|
||||
class Connection final : public BroObj {
|
||||
public:
|
||||
Connection(NetSessions* s, const ConnIDKey& k, double t, const ConnID* id,
|
||||
uint32_t flow, const Packet* pkt, const EncapsulationStack* arg_encap);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
class EventMgr;
|
||||
|
||||
class Event : public BroObj {
|
||||
class Event final : public BroObj {
|
||||
public:
|
||||
Event(EventHandlerPtr handler, zeek::Args args,
|
||||
SourceID src = SOURCE_LOCAL, analyzer::ID aid = 0,
|
||||
|
|
90
src/Expr.h
90
src/Expr.h
|
@ -202,7 +202,7 @@ public:
|
|||
return (IndexExpr*) this;
|
||||
}
|
||||
|
||||
void Describe(ODesc* d) const override;
|
||||
void Describe(ODesc* d) const override final;
|
||||
|
||||
virtual TraversalCode Traverse(TraversalCallback* cb) const = 0;
|
||||
|
||||
|
@ -232,7 +232,7 @@ protected:
|
|||
bool paren;
|
||||
};
|
||||
|
||||
class NameExpr : public Expr {
|
||||
class NameExpr final : public Expr {
|
||||
public:
|
||||
explicit NameExpr(IntrusivePtr<ID> id, bool const_init = false);
|
||||
|
||||
|
@ -252,7 +252,7 @@ protected:
|
|||
bool in_const_init;
|
||||
};
|
||||
|
||||
class ConstExpr : public Expr {
|
||||
class ConstExpr final : public Expr {
|
||||
public:
|
||||
explicit ConstExpr(IntrusivePtr<Val> val);
|
||||
|
||||
|
@ -350,7 +350,7 @@ protected:
|
|||
IntrusivePtr<Expr> op2;
|
||||
};
|
||||
|
||||
class CloneExpr : public UnaryExpr {
|
||||
class CloneExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit CloneExpr(IntrusivePtr<Expr> op);
|
||||
IntrusivePtr<Val> Eval(Frame* f) const override;
|
||||
|
@ -359,7 +359,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class IncrExpr : public UnaryExpr {
|
||||
class IncrExpr final : public UnaryExpr {
|
||||
public:
|
||||
IncrExpr(BroExprTag tag, IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -368,7 +368,7 @@ public:
|
|||
bool IsPure() const override;
|
||||
};
|
||||
|
||||
class ComplementExpr : public UnaryExpr {
|
||||
class ComplementExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit ComplementExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -376,7 +376,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class NotExpr : public UnaryExpr {
|
||||
class NotExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit NotExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -384,7 +384,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class PosExpr : public UnaryExpr {
|
||||
class PosExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit PosExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -392,7 +392,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class NegExpr : public UnaryExpr {
|
||||
class NegExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit NegExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -400,7 +400,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class SizeExpr : public UnaryExpr {
|
||||
class SizeExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit SizeExpr(IntrusivePtr<Expr> op);
|
||||
IntrusivePtr<Val> Eval(Frame* f) const override;
|
||||
|
@ -409,36 +409,36 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class AddExpr : public BinaryExpr {
|
||||
class AddExpr final : public BinaryExpr {
|
||||
public:
|
||||
AddExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
void Canonicize() override;
|
||||
};
|
||||
|
||||
class AddToExpr : public BinaryExpr {
|
||||
class AddToExpr final : public BinaryExpr {
|
||||
public:
|
||||
AddToExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
IntrusivePtr<Val> Eval(Frame* f) const override;
|
||||
};
|
||||
|
||||
class RemoveFromExpr : public BinaryExpr {
|
||||
class RemoveFromExpr final : public BinaryExpr {
|
||||
public:
|
||||
RemoveFromExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
IntrusivePtr<Val> Eval(Frame* f) const override;
|
||||
};
|
||||
|
||||
class SubExpr : public BinaryExpr {
|
||||
class SubExpr final : public BinaryExpr {
|
||||
public:
|
||||
SubExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
};
|
||||
|
||||
class TimesExpr : public BinaryExpr {
|
||||
class TimesExpr final : public BinaryExpr {
|
||||
public:
|
||||
TimesExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
void Canonicize() override;
|
||||
};
|
||||
|
||||
class DivideExpr : public BinaryExpr {
|
||||
class DivideExpr final : public BinaryExpr {
|
||||
public:
|
||||
DivideExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
|
||||
|
@ -446,12 +446,12 @@ protected:
|
|||
IntrusivePtr<Val> AddrFold(Val* v1, Val* v2) const override;
|
||||
};
|
||||
|
||||
class ModExpr : public BinaryExpr {
|
||||
class ModExpr final : public BinaryExpr {
|
||||
public:
|
||||
ModExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
};
|
||||
|
||||
class BoolExpr : public BinaryExpr {
|
||||
class BoolExpr final : public BinaryExpr {
|
||||
public:
|
||||
BoolExpr(BroExprTag tag, IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
|
||||
|
@ -459,12 +459,12 @@ public:
|
|||
IntrusivePtr<Val> DoSingleEval(Frame* f, IntrusivePtr<Val> v1, Expr* op2) const;
|
||||
};
|
||||
|
||||
class BitExpr : public BinaryExpr {
|
||||
class BitExpr final : public BinaryExpr {
|
||||
public:
|
||||
BitExpr(BroExprTag tag, IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
};
|
||||
|
||||
class EqExpr : public BinaryExpr {
|
||||
class EqExpr final : public BinaryExpr {
|
||||
public:
|
||||
EqExpr(BroExprTag tag, IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
void Canonicize() override;
|
||||
|
@ -473,13 +473,13 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v1, Val* v2) const override;
|
||||
};
|
||||
|
||||
class RelExpr : public BinaryExpr {
|
||||
class RelExpr final : public BinaryExpr {
|
||||
public:
|
||||
RelExpr(BroExprTag tag, IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
void Canonicize() override;
|
||||
};
|
||||
|
||||
class CondExpr : public Expr {
|
||||
class CondExpr final : public Expr {
|
||||
public:
|
||||
CondExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2, IntrusivePtr<Expr> op3);
|
||||
|
||||
|
@ -500,7 +500,7 @@ protected:
|
|||
IntrusivePtr<Expr> op3;
|
||||
};
|
||||
|
||||
class RefExpr : public UnaryExpr {
|
||||
class RefExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit RefExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -530,14 +530,14 @@ protected:
|
|||
IntrusivePtr<Val> val; // optional
|
||||
};
|
||||
|
||||
class IndexSliceAssignExpr : public AssignExpr {
|
||||
class IndexSliceAssignExpr final : public AssignExpr {
|
||||
public:
|
||||
IndexSliceAssignExpr(IntrusivePtr<Expr> op1,
|
||||
IntrusivePtr<Expr> op2, bool is_init);
|
||||
IntrusivePtr<Val> Eval(Frame* f) const override;
|
||||
};
|
||||
|
||||
class IndexExpr : public BinaryExpr {
|
||||
class IndexExpr final : public BinaryExpr {
|
||||
public:
|
||||
IndexExpr(IntrusivePtr<Expr> op1,
|
||||
IntrusivePtr<ListExpr> op2, bool is_slice = false);
|
||||
|
@ -567,7 +567,7 @@ protected:
|
|||
bool is_slice;
|
||||
};
|
||||
|
||||
class FieldExpr : public UnaryExpr {
|
||||
class FieldExpr final : public UnaryExpr {
|
||||
public:
|
||||
FieldExpr(IntrusivePtr<Expr> op, const char* field_name);
|
||||
~FieldExpr() override;
|
||||
|
@ -594,7 +594,7 @@ protected:
|
|||
|
||||
// "rec?$fieldname" is true if the value of $fieldname in rec is not nil.
|
||||
// "rec?$$attrname" is true if the attribute attrname is not nil.
|
||||
class HasFieldExpr : public UnaryExpr {
|
||||
class HasFieldExpr final : public UnaryExpr {
|
||||
public:
|
||||
HasFieldExpr(IntrusivePtr<Expr> op, const char* field_name);
|
||||
~HasFieldExpr() override;
|
||||
|
@ -610,7 +610,7 @@ protected:
|
|||
int field;
|
||||
};
|
||||
|
||||
class RecordConstructorExpr : public UnaryExpr {
|
||||
class RecordConstructorExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit RecordConstructorExpr(IntrusivePtr<ListExpr> constructor_list);
|
||||
~RecordConstructorExpr() override;
|
||||
|
@ -622,7 +622,7 @@ protected:
|
|||
void ExprDescribe(ODesc* d) const override;
|
||||
};
|
||||
|
||||
class TableConstructorExpr : public UnaryExpr {
|
||||
class TableConstructorExpr final : public UnaryExpr {
|
||||
public:
|
||||
TableConstructorExpr(IntrusivePtr<ListExpr> constructor_list, attr_list* attrs,
|
||||
IntrusivePtr<BroType> arg_type = nullptr);
|
||||
|
@ -640,7 +640,7 @@ protected:
|
|||
Attributes* attrs;
|
||||
};
|
||||
|
||||
class SetConstructorExpr : public UnaryExpr {
|
||||
class SetConstructorExpr final : public UnaryExpr {
|
||||
public:
|
||||
SetConstructorExpr(IntrusivePtr<ListExpr> constructor_list, attr_list* attrs,
|
||||
IntrusivePtr<BroType> arg_type = nullptr);
|
||||
|
@ -658,7 +658,7 @@ protected:
|
|||
Attributes* attrs;
|
||||
};
|
||||
|
||||
class VectorConstructorExpr : public UnaryExpr {
|
||||
class VectorConstructorExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit VectorConstructorExpr(IntrusivePtr<ListExpr> constructor_list,
|
||||
IntrusivePtr<BroType> arg_type = nullptr);
|
||||
|
@ -671,7 +671,7 @@ protected:
|
|||
void ExprDescribe(ODesc* d) const override;
|
||||
};
|
||||
|
||||
class FieldAssignExpr : public UnaryExpr {
|
||||
class FieldAssignExpr final : public UnaryExpr {
|
||||
public:
|
||||
FieldAssignExpr(const char* field_name, IntrusivePtr<Expr> value);
|
||||
|
||||
|
@ -686,7 +686,7 @@ protected:
|
|||
string field_name;
|
||||
};
|
||||
|
||||
class ArithCoerceExpr : public UnaryExpr {
|
||||
class ArithCoerceExpr final : public UnaryExpr {
|
||||
public:
|
||||
ArithCoerceExpr(IntrusivePtr<Expr> op, TypeTag t);
|
||||
|
||||
|
@ -695,7 +695,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class RecordCoerceExpr : public UnaryExpr {
|
||||
class RecordCoerceExpr final : public UnaryExpr {
|
||||
public:
|
||||
RecordCoerceExpr(IntrusivePtr<Expr> op, IntrusivePtr<RecordType> r);
|
||||
~RecordCoerceExpr() override;
|
||||
|
@ -710,7 +710,7 @@ protected:
|
|||
int map_size; // equivalent to Type()->AsRecordType()->NumFields()
|
||||
};
|
||||
|
||||
class TableCoerceExpr : public UnaryExpr {
|
||||
class TableCoerceExpr final : public UnaryExpr {
|
||||
public:
|
||||
TableCoerceExpr(IntrusivePtr<Expr> op, IntrusivePtr<TableType> r);
|
||||
~TableCoerceExpr() override;
|
||||
|
@ -719,7 +719,7 @@ protected:
|
|||
IntrusivePtr<Val> Fold(Val* v) const override;
|
||||
};
|
||||
|
||||
class VectorCoerceExpr : public UnaryExpr {
|
||||
class VectorCoerceExpr final : public UnaryExpr {
|
||||
public:
|
||||
VectorCoerceExpr(IntrusivePtr<Expr> op, IntrusivePtr<VectorType> v);
|
||||
~VectorCoerceExpr() override;
|
||||
|
@ -730,7 +730,7 @@ protected:
|
|||
|
||||
// An internal operator for flattening array indices that are records
|
||||
// into a list of individual values.
|
||||
class FlattenExpr : public UnaryExpr {
|
||||
class FlattenExpr final : public UnaryExpr {
|
||||
public:
|
||||
explicit FlattenExpr(IntrusivePtr<Expr> op);
|
||||
|
||||
|
@ -752,7 +752,7 @@ protected:
|
|||
zeek::Args args;
|
||||
};
|
||||
|
||||
class ScheduleExpr : public Expr {
|
||||
class ScheduleExpr final : public Expr {
|
||||
public:
|
||||
ScheduleExpr(IntrusivePtr<Expr> when, IntrusivePtr<EventExpr> event);
|
||||
|
||||
|
@ -772,7 +772,7 @@ protected:
|
|||
IntrusivePtr<EventExpr> event;
|
||||
};
|
||||
|
||||
class InExpr : public BinaryExpr {
|
||||
class InExpr final : public BinaryExpr {
|
||||
public:
|
||||
InExpr(IntrusivePtr<Expr> op1, IntrusivePtr<Expr> op2);
|
||||
|
||||
|
@ -781,7 +781,7 @@ protected:
|
|||
|
||||
};
|
||||
|
||||
class CallExpr : public Expr {
|
||||
class CallExpr final : public Expr {
|
||||
public:
|
||||
CallExpr(IntrusivePtr<Expr> func, IntrusivePtr<ListExpr> args,
|
||||
bool in_hook = false);
|
||||
|
@ -808,7 +808,7 @@ protected:
|
|||
* On evaluation, captures the frame that it is evaluated in. This becomes
|
||||
* the closure for the instance of the function that it creates.
|
||||
*/
|
||||
class LambdaExpr : public Expr {
|
||||
class LambdaExpr final : public Expr {
|
||||
public:
|
||||
LambdaExpr(std::unique_ptr<function_ingredients> ingredients,
|
||||
id_list outer_ids);
|
||||
|
@ -828,7 +828,7 @@ private:
|
|||
std::string my_name;
|
||||
};
|
||||
|
||||
class EventExpr : public Expr {
|
||||
class EventExpr final : public Expr {
|
||||
public:
|
||||
EventExpr(const char* name, IntrusivePtr<ListExpr> args);
|
||||
|
||||
|
@ -880,12 +880,12 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class RecordAssignExpr : public ListExpr {
|
||||
class RecordAssignExpr final : public ListExpr {
|
||||
public:
|
||||
RecordAssignExpr(const IntrusivePtr<Expr>& record, const IntrusivePtr<Expr>& init_list, bool is_init);
|
||||
};
|
||||
|
||||
class CastExpr : public UnaryExpr {
|
||||
class CastExpr final : public UnaryExpr {
|
||||
public:
|
||||
CastExpr(IntrusivePtr<Expr> op, IntrusivePtr<BroType> t);
|
||||
|
||||
|
@ -894,7 +894,7 @@ protected:
|
|||
void ExprDescribe(ODesc* d) const override;
|
||||
};
|
||||
|
||||
class IsExpr : public UnaryExpr {
|
||||
class IsExpr final : public UnaryExpr {
|
||||
public:
|
||||
IsExpr(IntrusivePtr<Expr> op, IntrusivePtr<BroType> t);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class Attributes;
|
|||
class BroType;
|
||||
class RecordVal;
|
||||
|
||||
class BroFile : public BroObj {
|
||||
class BroFile final : public BroObj {
|
||||
public:
|
||||
explicit BroFile(FILE* arg_f);
|
||||
BroFile(FILE* arg_f, const char* filename, const char* access);
|
||||
|
|
|
@ -118,7 +118,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class BroFunc : public Func {
|
||||
class BroFunc final : public Func {
|
||||
public:
|
||||
BroFunc(ID* id, IntrusivePtr<Stmt> body, id_list* inits, size_t frame_size, int priority);
|
||||
~BroFunc() override;
|
||||
|
@ -193,7 +193,7 @@ private:
|
|||
|
||||
using built_in_func = Val* (*)(Frame* frame, const zeek::Args* args);
|
||||
|
||||
class BuiltinFunc : public Func {
|
||||
class BuiltinFunc final : public Func {
|
||||
public:
|
||||
BuiltinFunc(built_in_func func, const char* name, bool is_pure);
|
||||
~BuiltinFunc() override;
|
||||
|
|
2
src/ID.h
2
src/ID.h
|
@ -21,7 +21,7 @@ class Attributes;
|
|||
typedef enum { INIT_NONE, INIT_FULL, INIT_EXTRA, INIT_REMOVE, } init_class;
|
||||
typedef enum { SCOPE_FUNCTION, SCOPE_MODULE, SCOPE_GLOBAL } IDScope;
|
||||
|
||||
class ID : public BroObj, public notifier::Modifiable {
|
||||
class ID final : public BroObj, public notifier::Modifiable {
|
||||
public:
|
||||
ID(const char* name, IDScope arg_scope, bool arg_is_export);
|
||||
~ID() override;
|
||||
|
|
36
src/Stmt.h
36
src/Stmt.h
|
@ -103,7 +103,7 @@ protected:
|
|||
IntrusivePtr<ListExpr> l;
|
||||
};
|
||||
|
||||
class PrintStmt : public ExprListStmt {
|
||||
class PrintStmt final : public ExprListStmt {
|
||||
public:
|
||||
template<typename L>
|
||||
explicit PrintStmt(L&& l) : ExprListStmt(STMT_PRINT, std::forward<L>(l)) { }
|
||||
|
@ -136,7 +136,7 @@ protected:
|
|||
IntrusivePtr<Expr> e;
|
||||
};
|
||||
|
||||
class IfStmt : public ExprStmt {
|
||||
class IfStmt final : public ExprStmt {
|
||||
public:
|
||||
IfStmt(IntrusivePtr<Expr> test, IntrusivePtr<Stmt> s1, IntrusivePtr<Stmt> s2);
|
||||
~IfStmt() override;
|
||||
|
@ -156,7 +156,7 @@ protected:
|
|||
IntrusivePtr<Stmt> s2;
|
||||
};
|
||||
|
||||
class Case : public BroObj {
|
||||
class Case final : public BroObj {
|
||||
public:
|
||||
Case(IntrusivePtr<ListExpr> c, id_list* types, IntrusivePtr<Stmt> arg_s);
|
||||
~Case() override;
|
||||
|
@ -180,9 +180,9 @@ protected:
|
|||
IntrusivePtr<Stmt> s;
|
||||
};
|
||||
|
||||
typedef PList<Case> case_list;
|
||||
using case_list = PList<Case>;
|
||||
|
||||
class SwitchStmt : public ExprStmt {
|
||||
class SwitchStmt final : public ExprStmt {
|
||||
public:
|
||||
SwitchStmt(IntrusivePtr<Expr> index, case_list* cases);
|
||||
~SwitchStmt() override;
|
||||
|
@ -223,7 +223,7 @@ protected:
|
|||
std::vector<std::pair<ID*, int>> case_label_type_list;
|
||||
};
|
||||
|
||||
class AddStmt : public ExprStmt {
|
||||
class AddStmt final : public ExprStmt {
|
||||
public:
|
||||
explicit AddStmt(IntrusivePtr<Expr> e);
|
||||
|
||||
|
@ -233,7 +233,7 @@ public:
|
|||
TraversalCode Traverse(TraversalCallback* cb) const override;
|
||||
};
|
||||
|
||||
class DelStmt : public ExprStmt {
|
||||
class DelStmt final : public ExprStmt {
|
||||
public:
|
||||
explicit DelStmt(IntrusivePtr<Expr> e);
|
||||
|
||||
|
@ -243,7 +243,7 @@ public:
|
|||
TraversalCode Traverse(TraversalCallback* cb) const override;
|
||||
};
|
||||
|
||||
class EventStmt : public ExprStmt {
|
||||
class EventStmt final : public ExprStmt {
|
||||
public:
|
||||
explicit EventStmt(IntrusivePtr<EventExpr> e);
|
||||
|
||||
|
@ -255,7 +255,7 @@ protected:
|
|||
IntrusivePtr<EventExpr> event_expr;
|
||||
};
|
||||
|
||||
class WhileStmt : public Stmt {
|
||||
class WhileStmt final : public Stmt {
|
||||
public:
|
||||
|
||||
WhileStmt(IntrusivePtr<Expr> loop_condition, IntrusivePtr<Stmt> body);
|
||||
|
@ -274,7 +274,7 @@ protected:
|
|||
IntrusivePtr<Stmt> body;
|
||||
};
|
||||
|
||||
class ForStmt : public ExprStmt {
|
||||
class ForStmt final : public ExprStmt {
|
||||
public:
|
||||
ForStmt(id_list* loop_vars, IntrusivePtr<Expr> loop_expr);
|
||||
// Special constructor for key value for loop.
|
||||
|
@ -303,7 +303,7 @@ protected:
|
|||
IntrusivePtr<ID> value_var;
|
||||
};
|
||||
|
||||
class NextStmt : public Stmt {
|
||||
class NextStmt final : public Stmt {
|
||||
public:
|
||||
NextStmt() : Stmt(STMT_NEXT) { }
|
||||
|
||||
|
@ -317,7 +317,7 @@ public:
|
|||
protected:
|
||||
};
|
||||
|
||||
class BreakStmt : public Stmt {
|
||||
class BreakStmt final : public Stmt {
|
||||
public:
|
||||
BreakStmt() : Stmt(STMT_BREAK) { }
|
||||
|
||||
|
@ -331,7 +331,7 @@ public:
|
|||
protected:
|
||||
};
|
||||
|
||||
class FallthroughStmt : public Stmt {
|
||||
class FallthroughStmt final : public Stmt {
|
||||
public:
|
||||
FallthroughStmt() : Stmt(STMT_FALLTHROUGH) { }
|
||||
|
||||
|
@ -345,7 +345,7 @@ public:
|
|||
protected:
|
||||
};
|
||||
|
||||
class ReturnStmt : public ExprStmt {
|
||||
class ReturnStmt final : public ExprStmt {
|
||||
public:
|
||||
explicit ReturnStmt(IntrusivePtr<Expr> e);
|
||||
|
||||
|
@ -374,7 +374,7 @@ protected:
|
|||
stmt_list stmts;
|
||||
};
|
||||
|
||||
class EventBodyList : public StmtList {
|
||||
class EventBodyList final : public StmtList {
|
||||
public:
|
||||
EventBodyList() : StmtList()
|
||||
{ topmost = false; tag = STMT_EVENT_BODY_LIST; }
|
||||
|
@ -391,7 +391,7 @@ protected:
|
|||
bool topmost;
|
||||
};
|
||||
|
||||
class InitStmt : public Stmt {
|
||||
class InitStmt final : public Stmt {
|
||||
public:
|
||||
explicit InitStmt(id_list* arg_inits);
|
||||
|
||||
|
@ -409,7 +409,7 @@ protected:
|
|||
id_list* inits;
|
||||
};
|
||||
|
||||
class NullStmt : public Stmt {
|
||||
class NullStmt final : public Stmt {
|
||||
public:
|
||||
NullStmt() : Stmt(STMT_NULL) { }
|
||||
|
||||
|
@ -421,7 +421,7 @@ public:
|
|||
TraversalCode Traverse(TraversalCallback* cb) const override;
|
||||
};
|
||||
|
||||
class WhenStmt : public Stmt {
|
||||
class WhenStmt final : public Stmt {
|
||||
public:
|
||||
// s2 is null if no timeout block given.
|
||||
WhenStmt(IntrusivePtr<Expr> cond,
|
||||
|
|
|
@ -25,7 +25,7 @@ using std::map;
|
|||
class TriggerTimer;
|
||||
class TriggerTraversalCallback;
|
||||
|
||||
class Trigger : public BroObj, public notifier::Receiver {
|
||||
class Trigger final : public BroObj, public notifier::Receiver {
|
||||
public:
|
||||
// Don't access Trigger objects; they take care of themselves after
|
||||
// instantiation. Note that if the condition is already true, the
|
||||
|
|
20
src/Type.h
20
src/Type.h
|
@ -345,7 +345,7 @@ private:
|
|||
static TypeAliasMap type_aliases;
|
||||
};
|
||||
|
||||
class TypeList : public BroType {
|
||||
class TypeList final : public BroType {
|
||||
public:
|
||||
explicit TypeList(IntrusivePtr<BroType> arg_pure_type = nullptr)
|
||||
: BroType(TYPE_LIST), pure_type(std::move(arg_pure_type))
|
||||
|
@ -424,7 +424,7 @@ protected:
|
|||
TypeList* ExpandRecordIndex(RecordType* rt) const;
|
||||
};
|
||||
|
||||
class SetType : public TableType {
|
||||
class SetType final : public TableType {
|
||||
public:
|
||||
SetType(IntrusivePtr<TypeList> ind, IntrusivePtr<ListExpr> arg_elements);
|
||||
~SetType() override;
|
||||
|
@ -437,7 +437,7 @@ protected:
|
|||
IntrusivePtr<ListExpr> elements;
|
||||
};
|
||||
|
||||
class FuncType : public BroType {
|
||||
class FuncType final : public BroType {
|
||||
public:
|
||||
FuncType(IntrusivePtr<RecordType> args, IntrusivePtr<BroType> yield,
|
||||
function_flavor f);
|
||||
|
@ -472,7 +472,7 @@ protected:
|
|||
function_flavor flavor;
|
||||
};
|
||||
|
||||
class TypeType : public BroType {
|
||||
class TypeType final : public BroType {
|
||||
public:
|
||||
explicit TypeType(IntrusivePtr<BroType> t) : BroType(TYPE_TYPE), type(std::move(t)) {}
|
||||
TypeType* ShallowClone() override { return new TypeType(type); }
|
||||
|
@ -501,7 +501,7 @@ public:
|
|||
|
||||
typedef PList<TypeDecl> type_decl_list;
|
||||
|
||||
class RecordType : public BroType {
|
||||
class RecordType final : public BroType {
|
||||
public:
|
||||
explicit RecordType(type_decl_list* types);
|
||||
RecordType* ShallowClone() override;
|
||||
|
@ -565,13 +565,13 @@ protected:
|
|||
type_decl_list* types;
|
||||
};
|
||||
|
||||
class SubNetType : public BroType {
|
||||
class SubNetType final : public BroType {
|
||||
public:
|
||||
SubNetType();
|
||||
void Describe(ODesc* d) const override;
|
||||
};
|
||||
|
||||
class FileType : public BroType {
|
||||
class FileType final : public BroType {
|
||||
public:
|
||||
explicit FileType(IntrusivePtr<BroType> yield_type);
|
||||
FileType* ShallowClone() override { return new FileType(yield); }
|
||||
|
@ -585,7 +585,7 @@ protected:
|
|||
IntrusivePtr<BroType> yield;
|
||||
};
|
||||
|
||||
class OpaqueType : public BroType {
|
||||
class OpaqueType final : public BroType {
|
||||
public:
|
||||
explicit OpaqueType(const std::string& name);
|
||||
OpaqueType* ShallowClone() override { return new OpaqueType(name); }
|
||||
|
@ -602,7 +602,7 @@ protected:
|
|||
std::string name;
|
||||
};
|
||||
|
||||
class EnumType : public BroType {
|
||||
class EnumType final : public BroType {
|
||||
public:
|
||||
typedef std::list<std::pair<std::string, bro_int_t> > enum_name_list;
|
||||
|
||||
|
@ -655,7 +655,7 @@ protected:
|
|||
bro_int_t counter;
|
||||
};
|
||||
|
||||
class VectorType : public BroType {
|
||||
class VectorType final : public BroType {
|
||||
public:
|
||||
explicit VectorType(IntrusivePtr<BroType> t);
|
||||
VectorType* ShallowClone() override;
|
||||
|
|
22
src/Val.h
22
src/Val.h
|
@ -458,7 +458,7 @@ extern ValManager* val_mgr;
|
|||
#define Hours (60*Minutes)
|
||||
#define Days (24*Hours)
|
||||
|
||||
class IntervalVal : public Val {
|
||||
class IntervalVal final : public Val {
|
||||
public:
|
||||
IntervalVal(double quantity, double units);
|
||||
|
||||
|
@ -469,7 +469,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class PortVal : public Val {
|
||||
class PortVal final : public Val {
|
||||
public:
|
||||
IntrusivePtr<Val> SizeVal() const override;
|
||||
|
||||
|
@ -505,7 +505,7 @@ protected:
|
|||
IntrusivePtr<Val> DoClone(CloneState* state) override;
|
||||
};
|
||||
|
||||
class AddrVal : public Val {
|
||||
class AddrVal final : public Val {
|
||||
public:
|
||||
explicit AddrVal(const char* text);
|
||||
explicit AddrVal(const std::string& text);
|
||||
|
@ -524,7 +524,7 @@ protected:
|
|||
IntrusivePtr<Val> DoClone(CloneState* state) override;
|
||||
};
|
||||
|
||||
class SubNetVal : public Val {
|
||||
class SubNetVal final : public Val {
|
||||
public:
|
||||
explicit SubNetVal(const char* text);
|
||||
SubNetVal(const char* text, int width);
|
||||
|
@ -549,7 +549,7 @@ protected:
|
|||
IntrusivePtr<Val> DoClone(CloneState* state) override;
|
||||
};
|
||||
|
||||
class StringVal : public Val {
|
||||
class StringVal final : public Val {
|
||||
public:
|
||||
explicit StringVal(BroString* s);
|
||||
explicit StringVal(const char* s);
|
||||
|
@ -579,7 +579,7 @@ protected:
|
|||
IntrusivePtr<Val> DoClone(CloneState* state) override;
|
||||
};
|
||||
|
||||
class PatternVal : public Val {
|
||||
class PatternVal final : public Val {
|
||||
public:
|
||||
explicit PatternVal(RE_Matcher* re);
|
||||
~PatternVal() override;
|
||||
|
@ -597,7 +597,7 @@ protected:
|
|||
|
||||
// ListVals are mainly used to index tables that have more than one
|
||||
// element in their index.
|
||||
class ListVal : public Val {
|
||||
class ListVal final : public Val {
|
||||
public:
|
||||
explicit ListVal(TypeTag t);
|
||||
~ListVal() override;
|
||||
|
@ -691,7 +691,7 @@ class CompositeHash;
|
|||
class HashKey;
|
||||
class Frame;
|
||||
|
||||
class TableVal : public Val, public notifier::Modifiable {
|
||||
class TableVal final : public Val, public notifier::Modifiable {
|
||||
public:
|
||||
explicit TableVal(IntrusivePtr<TableType> t, IntrusivePtr<Attributes> attrs = nullptr);
|
||||
~TableVal() override;
|
||||
|
@ -878,7 +878,7 @@ protected:
|
|||
static ParseTimeTableStates parse_time_table_states;
|
||||
};
|
||||
|
||||
class RecordVal : public Val, public notifier::Modifiable {
|
||||
class RecordVal final : public Val, public notifier::Modifiable {
|
||||
public:
|
||||
explicit RecordVal(RecordType* t, bool init_fields = true);
|
||||
~RecordVal() override;
|
||||
|
@ -947,7 +947,7 @@ protected:
|
|||
static RecordTypeValMap parse_time_records;
|
||||
};
|
||||
|
||||
class EnumVal : public Val {
|
||||
class EnumVal final : public Val {
|
||||
public:
|
||||
IntrusivePtr<Val> SizeVal() const override;
|
||||
|
||||
|
@ -964,7 +964,7 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
class VectorVal : public Val, public notifier::Modifiable {
|
||||
class VectorVal final : public Val, public notifier::Modifiable {
|
||||
public:
|
||||
explicit VectorVal(VectorType* t);
|
||||
~VectorVal() override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue