From 68faee1082c94c5c1d29cf5cd70db1e3435eef44 Mon Sep 17 00:00:00 2001 From: Tyler Dauwalder Date: Mon, 29 Jul 2002 07:03:23 +0000 Subject: [PATCH] + Switched to std::vector in favor of BList + Added a few minor tweaks git-svn-id: file:///srv/svn/repos/haiku/trunk/current@532 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/storage/sniffer/Rule.h | 15 ++++++++++----- src/kits/storage/sniffer/Rule.cpp | 24 ++++++++++++++++-------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/headers/private/storage/sniffer/Rule.h b/headers/private/storage/sniffer/Rule.h index 9aaedb290b..b6f1235094 100644 --- a/headers/private/storage/sniffer/Rule.h +++ b/headers/private/storage/sniffer/Rule.h @@ -9,20 +9,25 @@ #ifndef _sk_sniffer_rule_h_ #define _sk_sniffer_rule_h_ -#include +#include namespace Sniffer { class Expr; +typedef std::vector ExprList; class Rule { public: Rule(); - Rule(const char *rule); - status_t SetTo(const char *rule); + ~Rule(); private: - float fPriority; - BList fExprList; + friend class Parser; + + void Unset(); + void SetTo(double priority, ExprList* list); + + double fPriority; + ExprList *fExprList; }; } diff --git a/src/kits/storage/sniffer/Rule.cpp b/src/kits/storage/sniffer/Rule.cpp index 699008172d..e558bfaafb 100644 --- a/src/kits/storage/sniffer/Rule.cpp +++ b/src/kits/storage/sniffer/Rule.cpp @@ -13,19 +13,27 @@ using namespace Sniffer; Rule::Rule() : fPriority(0.0) + , fExprList(NULL) { - // Not implemented } -Rule::Rule(const char *rule) - : fPriority(0.0) -{ - // Parse the rule here ??? +Rule::~Rule() { + Unset(); } -status_t -Rule::SetTo(const char *rule) { - return B_ERROR; // Not implemented +void +Rule::Unset() { + if (fExprList){ + delete fExprList; + fExprList = NULL; + } +} + +void +Rule::SetTo(double priority, ExprList* list) { + Unset(); + fPriority = priority; + fExprList = list; }