Skip to content

Commit

Permalink
counter.core: Generalize the counterAnalysis to take ITmfCounterAspect
Browse files Browse the repository at this point in the history
[Changed] Allowed ITmfCounterAspect populate counterAnalysis

Signed-off-by: Reza Rouhghalandari <[email protected]>
  • Loading branch information
Rezix93 committed Aug 2, 2024
1 parent c8509f5 commit 7ac254b
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ public static CounterStateProvider create(ITmfTrace trace) {
Iterable<ITmfEventAspect<?>> counterAspects = TmfTraceUtils.getEventAspects(trace, ITmfCounterAspect.class);
for (ITmfEventAspect<?> counter : counterAspects) {

if (counter instanceof CounterAspect) {
CounterAspect counterAspect = (CounterAspect) counter;
if (counter instanceof ITmfCounterAspect) {
ITmfCounterAspect counterAspect = (ITmfCounterAspect) counter;
for (Class<? extends ITmfEventAspect<?>> parentAspectClass : counterAspect.getGroups()) {

// Avoid creating the same aggregated aspect multiple times
Expand Down Expand Up @@ -122,14 +122,14 @@ protected void eventHandle(@NonNull ITmfEvent event) {
}

for (ITmfEventAspect<?> aspect : fCounterAspects) {
if (aspect instanceof CounterAspect) {
CounterAspect counterAspect = (CounterAspect) aspect;
if (aspect instanceof ITmfCounterAspect) {
ITmfCounterAspect counterAspect = (ITmfCounterAspect) aspect;
if (counterAspect.getGroups().length > 0) {
int rootQuark = ss.getQuarkAbsoluteAndAdd(CounterAnalysis.GROUPED_COUNTER_ASPECTS_ATTRIB);
handleGroupedCounterAspect(event, ss, counterAspect, rootQuark);
handleGroupedCounterAspect(event, ss, rootQuark, counterAspect);
} else {
int rootQuark = ss.getQuarkAbsoluteAndAdd(CounterAnalysis.UNGROUPED_COUNTER_ASPECTS_ATTRIB);
handleCounterAspect(event, ss, counterAspect, rootQuark);
handleCounterAspect(event, ss, rootQuark, counterAspect);
}
}
}
Expand All @@ -147,8 +147,29 @@ protected void eventHandle(@NonNull ITmfEvent event) {
* Grouped counter aspect
* @param rootQuark
* Key to a relative root of the state system
* @deprecated use
* {@link #handleGroupedCounterAspect(ITmfEvent, ITmfStateSystemBuilder, int, ITfmCounterAspect)}
*/
@Deprecated
protected void handleGroupedCounterAspect(ITmfEvent event, ITmfStateSystemBuilder ss, CounterAspect aspect, int rootQuark) {
handleGroupedCounterAspect(event, ss, rootQuark, aspect);
}

/**
* Add the field value of a grouped counter aspect to the state system
* (override in specific implementations)
*
* @param event
* Event to process
* @param ss
* State system object to fill
* @param rootQuark
* Key to a relative root of the state system
* @param aspect
* Grouped counter aspect
* @since 2.2
*/
protected void handleGroupedCounterAspect(ITmfEvent event, ITmfStateSystemBuilder ss, int rootQuark, ITmfCounterAspect aspect) {
/*
* Retrieve the child quark of the counter aspect by going through its
* attribute tree in the state system. The concatenation of the aspect's
Expand All @@ -170,10 +191,10 @@ protected void handleGroupedCounterAspect(ITmfEvent event, ITmfStateSystemBuilde
}
}

handleCounterAspect(event, ss, aspect, quark);
handleCounterAspect(event, ss, quark, aspect);
}

private static void handleCounterAspect(ITmfEvent event, ITmfStateSystemBuilder ss, CounterAspect aspect, int rootQuark) {
private static void handleCounterAspect(ITmfEvent event, ITmfStateSystemBuilder ss, int rootQuark, ITmfCounterAspect aspect) {
int quark = ss.getQuarkRelativeAndAdd(rootQuark, aspect.getName());
Number eventContent = aspect.resolve(event);
if (eventContent != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ public boolean equals(@Nullable Object obj) {
* @return the type of this counter
* @since 2.1
*/
@Override
public CounterType getType() {
return fType;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ public CounterAspect(String fieldName, String label, CounterType type, Class<? e
*
* @return the groups
*/
@Override
public Class<? extends ITmfEventAspect<?>>[] getGroups() {
return fGroups;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

package org.eclipse.tracecompass.analysis.counters.core.aspects;

import org.eclipse.tracecompass.analysis.counters.core.CounterType;
import org.eclipse.tracecompass.tmf.core.event.aspect.ITmfEventAspect;

/**
Expand Down Expand Up @@ -52,4 +53,25 @@ default boolean isHiddenByDefault() {
default boolean isCumulative() {
return true;
}

/**
* Get the groups
*
* @return the groups
* @since 2.2
*/
default Class<? extends ITmfEventAspect<?>>[] getGroups(){
return new Class[0];
}

/**
* Gets the type of this counter
*
* @return the type of this counter
* @since 2.2
*/
default CounterType getType() {
return CounterType.LONG;
}

}

0 comments on commit 7ac254b

Please sign in to comment.