Cleanup/improve PList usage and Event API

Majority of PLists are now created as automatic/stack objects,
rather than on heap and initialized either with the known-capacity
reserved upfront or directly from an initializer_list (so there's no
wasted slack in the memory that gets allocated for lists containing
a fixed/known number of elements).

Added versions of the ConnectionEvent/QueueEvent methods that take
a val_list by value.

Added a move ctor/assign-operator to Plists to allow passing them
around without having to copy the underlying array of pointers.
This commit is contained in:
Jon Siwek 2019-04-11 19:02:13 -07:00
parent 78dcbcc71a
commit 8bc65f09ec
92 changed files with 1585 additions and 1679 deletions

View file

@ -13,10 +13,6 @@ class ID;
declare(PList,ID);
typedef PList(ID) id_list;
class HashKey;
declare(PList,HashKey);
typedef PList(HashKey) hash_key_list;
class Val;
declare(PList,Val);
typedef PList(Val) val_list;
@ -29,28 +25,12 @@ class BroType;
declare(PList,BroType);
typedef PList(BroType) type_list;
class TypeDecl;
declare(PList,TypeDecl);
typedef PList(TypeDecl) type_decl_list;
class Case;
declare(PList,Case);
typedef PList(Case) case_list;
class Attr;
declare(PList,Attr);
typedef PList(Attr) attr_list;
class Scope;
declare(PList,Scope);
typedef PList(Scope) scope_list;
class Timer;
declare(PList,Timer);
typedef PList(Timer) timer_list;
class DNS_Mgr_Request;
declare(PList,DNS_Mgr_Request);
typedef PList(DNS_Mgr_Request) DNS_mgr_request_list;
#endif