Use type aliases for IntrusivePtr definitions

This commit is contained in:
Tim Wojtulewicz 2020-06-24 16:46:34 -04:00
parent f6a251cdac
commit ec9eff0bd5
180 changed files with 2026 additions and 1893 deletions

View file

@ -23,13 +23,19 @@ class ForStmt;
class EventExpr;
class ListExpr;
using EventExprPtr = zeek::IntrusivePtr<EventExpr>;
using ListExprPtr = zeek::IntrusivePtr<ListExpr>;
class Stmt;
using StmtPtr = zeek::IntrusivePtr<Stmt>;
class Stmt : public BroObj {
public:
BroStmtTag Tag() const { return tag; }
~Stmt() override;
virtual zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const = 0;
virtual ValPtr Exec(Frame* f, stmt_flow_type& flow) const = 0;
Stmt* Ref() { ::Ref(this); return this; }
@ -93,17 +99,17 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
ExprListStmt(BroStmtTag t, zeek::IntrusivePtr<ListExpr> arg_l);
ExprListStmt(BroStmtTag t, ListExprPtr arg_l);
~ExprListStmt() override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
virtual zeek::IntrusivePtr<Val> DoExec(std::vector<zeek::IntrusivePtr<Val>> vals,
stmt_flow_type& flow) const = 0;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
virtual ValPtr DoExec(std::vector<ValPtr> vals,
stmt_flow_type& flow) const = 0;
void Describe(ODesc* d) const override;
zeek::IntrusivePtr<ListExpr> l;
ListExprPtr l;
};
class PrintStmt final : public ExprListStmt {
@ -112,16 +118,16 @@ public:
explicit PrintStmt(L&& l) : ExprListStmt(STMT_PRINT, std::forward<L>(l)) { }
protected:
zeek::IntrusivePtr<Val> DoExec(std::vector<zeek::IntrusivePtr<Val>> vals,
stmt_flow_type& flow) const override;
ValPtr DoExec(std::vector<ValPtr> vals,
stmt_flow_type& flow) const override;
};
class ExprStmt : public Stmt {
public:
explicit ExprStmt(zeek::IntrusivePtr<Expr> e);
explicit ExprStmt(ExprPtr e);
~ExprStmt() override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
const Expr* StmtExpr() const { return e.get(); }
@ -130,18 +136,18 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
ExprStmt(BroStmtTag t, zeek::IntrusivePtr<Expr> e);
ExprStmt(BroStmtTag t, ExprPtr e);
virtual zeek::IntrusivePtr<Val> DoExec(Frame* f, Val* v, stmt_flow_type& flow) const;
virtual ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const;
bool IsPure() const override;
zeek::IntrusivePtr<Expr> e;
ExprPtr e;
};
class IfStmt final : public ExprStmt {
public:
IfStmt(zeek::IntrusivePtr<Expr> test, zeek::IntrusivePtr<Stmt> s1, zeek::IntrusivePtr<Stmt> s2);
IfStmt(ExprPtr test, StmtPtr s1, StmtPtr s2);
~IfStmt() override;
const Stmt* TrueBranch() const { return s1.get(); }
@ -152,16 +158,16 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<Val> DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
bool IsPure() const override;
zeek::IntrusivePtr<Stmt> s1;
zeek::IntrusivePtr<Stmt> s2;
StmtPtr s1;
StmtPtr s2;
};
class Case final : public BroObj {
public:
Case(zeek::IntrusivePtr<ListExpr> c, id_list* types, zeek::IntrusivePtr<Stmt> arg_s);
Case(ListExprPtr c, id_list* types, StmtPtr arg_s);
~Case() override;
const ListExpr* ExprCases() const { return expr_cases.get(); }
@ -178,16 +184,16 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const;
protected:
zeek::IntrusivePtr<ListExpr> expr_cases;
ListExprPtr expr_cases;
id_list* type_cases;
zeek::IntrusivePtr<Stmt> s;
StmtPtr s;
};
using case_list = PList<Case>;
class SwitchStmt final : public ExprStmt {
public:
SwitchStmt(zeek::IntrusivePtr<Expr> index, case_list* cases);
SwitchStmt(ExprPtr index, case_list* cases);
~SwitchStmt() override;
const case_list* Cases() const { return cases; }
@ -197,7 +203,7 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<Val> DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
bool IsPure() const override;
// Initialize composite hash and case label map.
@ -228,40 +234,40 @@ protected:
class AddStmt final : public ExprStmt {
public:
explicit AddStmt(zeek::IntrusivePtr<Expr> e);
explicit AddStmt(ExprPtr e);
bool IsPure() const override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
TraversalCode Traverse(TraversalCallback* cb) const override;
};
class DelStmt final : public ExprStmt {
public:
explicit DelStmt(zeek::IntrusivePtr<Expr> e);
explicit DelStmt(ExprPtr e);
bool IsPure() const override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
TraversalCode Traverse(TraversalCallback* cb) const override;
};
class EventStmt final : public ExprStmt {
public:
explicit EventStmt(zeek::IntrusivePtr<EventExpr> e);
explicit EventStmt(EventExprPtr e);
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<EventExpr> event_expr;
EventExprPtr event_expr;
};
class WhileStmt final : public Stmt {
public:
WhileStmt(zeek::IntrusivePtr<Expr> loop_condition, zeek::IntrusivePtr<Stmt> body);
WhileStmt(ExprPtr loop_condition, StmtPtr body);
~WhileStmt() override;
bool IsPure() const override;
@ -271,20 +277,20 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
zeek::IntrusivePtr<Expr> loop_condition;
zeek::IntrusivePtr<Stmt> body;
ExprPtr loop_condition;
StmtPtr body;
};
class ForStmt final : public ExprStmt {
public:
ForStmt(id_list* loop_vars, zeek::IntrusivePtr<Expr> loop_expr);
ForStmt(id_list* loop_vars, ExprPtr loop_expr);
// Special constructor for key value for loop.
ForStmt(id_list* loop_vars, zeek::IntrusivePtr<Expr> loop_expr, zeek::IntrusivePtr<ID> val_var);
ForStmt(id_list* loop_vars, ExprPtr loop_expr, IDPtr val_var);
~ForStmt() override;
void AddBody(zeek::IntrusivePtr<Stmt> arg_body) { body = std::move(arg_body); }
void AddBody(StmtPtr arg_body) { body = std::move(arg_body); }
const id_list* LoopVar() const { return loop_vars; }
const Expr* LoopExpr() const { return e.get(); }
@ -297,20 +303,20 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<Val> DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
ValPtr DoExec(Frame* f, Val* v, stmt_flow_type& flow) const override;
id_list* loop_vars;
zeek::IntrusivePtr<Stmt> body;
StmtPtr body;
// Stores the value variable being used for a key value for loop.
// Always set to nullptr unless special constructor is called.
zeek::IntrusivePtr<ID> value_var;
IDPtr value_var;
};
class NextStmt final : public Stmt {
public:
NextStmt() : Stmt(STMT_NEXT) { }
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
bool IsPure() const override;
void Describe(ODesc* d) const override;
@ -324,7 +330,7 @@ class BreakStmt final : public Stmt {
public:
BreakStmt() : Stmt(STMT_BREAK) { }
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
bool IsPure() const override;
void Describe(ODesc* d) const override;
@ -338,7 +344,7 @@ class FallthroughStmt final : public Stmt {
public:
FallthroughStmt() : Stmt(STMT_FALLTHROUGH) { }
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
bool IsPure() const override;
void Describe(ODesc* d) const override;
@ -350,9 +356,9 @@ protected:
class ReturnStmt final : public ExprStmt {
public:
explicit ReturnStmt(zeek::IntrusivePtr<Expr> e);
explicit ReturnStmt(ExprPtr e);
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
void Describe(ODesc* d) const override;
};
@ -362,7 +368,7 @@ public:
StmtList();
~StmtList() override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
const stmt_list& Stmts() const { return stmts; }
stmt_list& Stmts() { return stmts; }
@ -382,7 +388,7 @@ public:
EventBodyList() : StmtList()
{ topmost = false; tag = STMT_EVENT_BODY_LIST; }
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
void Describe(ODesc* d) const override;
@ -396,11 +402,11 @@ protected:
class InitStmt final : public Stmt {
public:
explicit InitStmt(std::vector<zeek::IntrusivePtr<ID>> arg_inits);
explicit InitStmt(std::vector<IDPtr> arg_inits);
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
const std::vector<zeek::IntrusivePtr<ID>>& Inits() const
const std::vector<IDPtr>& Inits() const
{ return inits; }
void Describe(ODesc* d) const override;
@ -408,14 +414,14 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
std::vector<zeek::IntrusivePtr<ID>> inits;
std::vector<IDPtr> inits;
};
class NullStmt final : public Stmt {
public:
NullStmt() : Stmt(STMT_NULL) { }
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
bool IsPure() const override;
void Describe(ODesc* d) const override;
@ -426,12 +432,12 @@ public:
class WhenStmt final : public Stmt {
public:
// s2 is null if no timeout block given.
WhenStmt(zeek::IntrusivePtr<Expr> cond,
zeek::IntrusivePtr<Stmt> s1, zeek::IntrusivePtr<Stmt> s2,
zeek::IntrusivePtr<Expr> timeout, bool is_return);
WhenStmt(ExprPtr cond,
StmtPtr s1, StmtPtr s2,
ExprPtr timeout, bool is_return);
~WhenStmt() override;
zeek::IntrusivePtr<Val> Exec(Frame* f, stmt_flow_type& flow) const override;
ValPtr Exec(Frame* f, stmt_flow_type& flow) const override;
bool IsPure() const override;
const Expr* Cond() const { return cond.get(); }
@ -444,10 +450,10 @@ public:
TraversalCode Traverse(TraversalCallback* cb) const override;
protected:
zeek::IntrusivePtr<Expr> cond;
zeek::IntrusivePtr<Stmt> s1;
zeek::IntrusivePtr<Stmt> s2;
zeek::IntrusivePtr<Expr> timeout;
ExprPtr cond;
StmtPtr s1;
StmtPtr s2;
ExprPtr timeout;
bool is_return;
};