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

Commit 55e229ac authored by Howard Ro's avatar Howard Ro Committed by Automerger Merge Worker
Browse files

Merge "Clean up ConditionTracker variables for tracking unsliced condition"...

Merge "Clean up ConditionTracker variables for tracking unsliced condition" into rvc-dev am: 9d94c092 am: 50dcb502

Change-Id: I219fa46a91630a5be6c3ef2bdab05c679169c459
parents 2109468d 50dcb502
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -141,17 +141,14 @@ void CombinationConditionTracker::evaluateCondition(
    ConditionState newCondition =
            evaluateCombinationCondition(mChildren, mLogicalOperation, nonSlicedConditionCache);
    if (!mSliced) {
        bool nonSlicedChanged = (mUnSlicedPartCondition != newCondition);
        mUnSlicedPartCondition = newCondition;

        bool nonSlicedChanged = (mNonSlicedConditionState != newCondition);
        mNonSlicedConditionState = newCondition;

        nonSlicedConditionCache[mIndex] = mNonSlicedConditionState;

        nonSlicedConditionCache[mIndex] = mUnSlicedPartCondition;
        conditionChangedCache[mIndex] = nonSlicedChanged;
        mUnSlicedPart = newCondition;
    } else {
        mUnSlicedPart = evaluateCombinationCondition(
            mUnSlicedChildren, mLogicalOperation, nonSlicedConditionCache);
        mUnSlicedPartCondition = evaluateCombinationCondition(mUnSlicedChildren, mLogicalOperation,
                                                              nonSlicedConditionCache);

        for (const int childIndex : mChildren) {
            // If any of the sliced condition in children condition changes, the combination
+11 −9
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ public:
          mIndex(index),
          mInitialized(false),
          mTrackerIndex(),
          mNonSlicedConditionState(ConditionState::kUnknown),
          mUnSlicedPartCondition(ConditionState::kUnknown),
          mSliced(false){};

    virtual ~ConditionTracker(){};
@@ -72,11 +72,6 @@ public:
                                   std::vector<ConditionState>& conditionCache,
                                   std::vector<bool>& conditionChanged) = 0;

    // Return the current condition state.
    virtual ConditionState isConditionMet() const {
        return mNonSlicedConditionState;
    };

    // Query the condition with parameters.
    // [conditionParameters]: a map from condition name to the HashableDimensionKey to query the
    //                       condition.
@@ -125,8 +120,9 @@ public:
        const std::vector<sp<ConditionTracker>>& allConditions,
        const vector<Matcher>& dimensions) const = 0;

    // Return the current condition state of the unsliced part of the condition.
    inline ConditionState getUnSlicedPartConditionState() const  {
        return mUnSlicedPart;
        return mUnSlicedPartCondition;
    }

protected:
@@ -141,10 +137,16 @@ protected:
    // the list of LogMatchingTracker index that this ConditionTracker uses.
    std::set<int> mTrackerIndex;

    ConditionState mNonSlicedConditionState;
    // This variable is only used for CombinationConditionTrackers.
    // SimpleConditionTrackers technically don't have an unsliced part because
    // they are either sliced or unsliced.
    //
    // CombinationConditionTrackers have multiple children ConditionTrackers
    // that can be a mixture of sliced or unsliced. This tracks the
    // condition of the unsliced part of the combination condition.
    ConditionState mUnSlicedPartCondition;

    bool mSliced;
    ConditionState mUnSlicedPart;
};

}  // namespace statsd
+0 −14
Original line number Diff line number Diff line
@@ -85,12 +85,6 @@ SimpleConditionTracker::SimpleConditionTracker(
        mInitialValue = ConditionState::kUnknown;
    }

    mNonSlicedConditionState = mInitialValue;

    if (!mSliced) {
        mUnSlicedPart = mInitialValue;
    }

    mInitialized = true;
}

@@ -141,9 +135,6 @@ void SimpleConditionTracker::handleStopAll(std::vector<ConditionState>& conditio
    mInitialValue = ConditionState::kFalse;
    mSlicedConditionState.clear();
    conditionCache[mIndex] = ConditionState::kFalse;
    if (!mSliced) {
        mUnSlicedPart = ConditionState::kFalse;
    }
}

bool SimpleConditionTracker::hitGuardRail(const HashableDimensionKey& newKey) {
@@ -305,9 +296,7 @@ void SimpleConditionTracker::evaluateCondition(
                conditionCache[mIndex] =
                        itr->second > 0 ? ConditionState::kTrue : ConditionState::kFalse;
            }
            mUnSlicedPart = conditionCache[mIndex];
        }

        return;
    }

@@ -333,9 +322,6 @@ void SimpleConditionTracker::evaluateCondition(
    }
    conditionCache[mIndex] = overallState;
    conditionChangedCache[mIndex] = overallChanged;
    if (!mSliced) {
        mUnSlicedPart = overallState;
    }
}

void SimpleConditionTracker::isConditionMet(