Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1800353f authored by Christine Tsai's avatar Christine Tsai Committed by Automerger Merge Worker
Browse files

Merge "Pass initial conditions to combination conditions and metrics" into...

Merge "Pass initial conditions to combination conditions and metrics" into rvc-dev am: c5111c99 am: 6470e9c9

Original change: undetermined

Change-Id: I55b34f0655f44f4e981d1cc3803bccc79c4edf2d
parents cdb48030 6470e9c9
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@ CombinationConditionTracker::~CombinationConditionTracker() {
bool CombinationConditionTracker::init(const vector<Predicate>& allConditionConfig,
                                       const vector<sp<ConditionTracker>>& allConditionTrackers,
                                       const unordered_map<int64_t, int>& conditionIdIndexMap,
                                       vector<bool>& stack) {
                                       vector<bool>& stack,
                                       vector<ConditionState>& initialConditionCache) {
    VLOG("Combination predicate init() %lld", (long long)mConditionId);
    if (mInitialized) {
        return true;
@@ -73,9 +74,9 @@ bool CombinationConditionTracker::init(const vector<Predicate>& allConditionConf
            return false;
        }


        bool initChildSucceeded = childTracker->init(allConditionConfig, allConditionTrackers,
                                                     conditionIdIndexMap, stack);
        bool initChildSucceeded =
                childTracker->init(allConditionConfig, allConditionTrackers, conditionIdIndexMap,
                                   stack, initialConditionCache);

        if (!initChildSucceeded) {
            ALOGW("Child initialization failed %lld ", (long long)child);
@@ -95,6 +96,11 @@ bool CombinationConditionTracker::init(const vector<Predicate>& allConditionConf
                             childTracker->getLogTrackerIndex().end());
    }

    mUnSlicedPartCondition = evaluateCombinationCondition(mUnSlicedChildren, mLogicalOperation,
                                                          initialConditionCache);
    initialConditionCache[mIndex] =
            evaluateCombinationCondition(mChildren, mLogicalOperation, initialConditionCache);

    // unmark this node in the recursion stack.
    stack[mIndex] = false;

+2 −2
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ public:

    bool init(const std::vector<Predicate>& allConditionConfig,
              const std::vector<sp<ConditionTracker>>& allConditionTrackers,
              const std::unordered_map<int64_t, int>& conditionIdIndexMap,
              std::vector<bool>& stack) override;
              const std::unordered_map<int64_t, int>& conditionIdIndexMap, std::vector<bool>& stack,
              std::vector<ConditionState>& initialConditionCache) override;

    void evaluateCondition(const LogEvent& event,
                           const std::vector<MatchingState>& eventMatcherValues,
+3 −1
Original line number Diff line number Diff line
@@ -51,10 +51,12 @@ public:
    //                       need to call init() on children conditions)
    // conditionIdIndexMap: the mapping from condition id to its index.
    // stack: a bit map to keep track which nodes have been visited on the stack in the recursion.
    // initialConditionCache: tracks initial conditions of all ConditionTrackers.
    virtual bool init(const std::vector<Predicate>& allConditionConfig,
                      const std::vector<sp<ConditionTracker>>& allConditionTrackers,
                      const std::unordered_map<int64_t, int>& conditionIdIndexMap,
                      std::vector<bool>& stack) = 0;
                      std::vector<bool>& stack,
                      std::vector<ConditionState>& initialConditionCache) = 0;

    // evaluate current condition given the new event.
    // event: the new log event
+3 −1
Original line number Diff line number Diff line
@@ -95,9 +95,11 @@ SimpleConditionTracker::~SimpleConditionTracker() {
bool SimpleConditionTracker::init(const vector<Predicate>& allConditionConfig,
                                  const vector<sp<ConditionTracker>>& allConditionTrackers,
                                  const unordered_map<int64_t, int>& conditionIdIndexMap,
                                  vector<bool>& stack) {
                                  vector<bool>& stack,
                                  vector<ConditionState>& initialConditionCache) {
    // SimpleConditionTracker does not have dependency on other conditions, thus we just return
    // if the initialization was successful.
    initialConditionCache[mIndex] = mInitialValue;
    return mInitialized;
}

+2 −2
Original line number Diff line number Diff line
@@ -37,8 +37,8 @@ public:

    bool init(const std::vector<Predicate>& allConditionConfig,
              const std::vector<sp<ConditionTracker>>& allConditionTrackers,
              const std::unordered_map<int64_t, int>& conditionIdIndexMap,
              std::vector<bool>& stack) override;
              const std::unordered_map<int64_t, int>& conditionIdIndexMap, std::vector<bool>& stack,
              std::vector<ConditionState>& initialConditionCache) override;

    void evaluateCondition(const LogEvent& event,
                           const std::vector<MatchingState>& eventMatcherValues,
Loading