File_Group::File_Group (void) { Trip_File (NULL); Time_File (NULL); Trip_Factor (NULL); Script_File (NULL); Purpose (0); Mode (0); Method (0); Duration (0); Type (0); SubType (0); Org_Wt (0); Des_Wt (0); Dist_Wt (true); Speed (0); Time_Field (0); Scaling_Factor (1.0); period = NULL; time_equiv = NULL; program = NULL; header = NULL; }
Type_Map::Type_Map (int type, int subtype) : Class_Index (0) { Type (type); SubType (subtype); Map (0); }
PerfConfigEventsModel::EventDescription PerfConfigEventsModel::parseEvent( const QString &event) const { EventDescription description; if (event.startsWith("mem:")) { description.eventType = EventTypeBreakpoint; QStringList parts = event.split(':'); if (parts.length() > 1) { description.numericEvent = parts[1].toULongLong(nullptr, 16); if (parts.length() > 2) { QString rwx = parts[2]; if (rwx.contains('r')) description.operation = description.operation | OperationLoad; if (rwx.contains('w')) description.operation = description.operation | OperationStore; if (rwx.contains('x')) description.operation = description.operation | OperationExecute; } } return description; } if (event.startsWith('r') && event.length() == 4) { bool ok = false; const uint eventNumber = event.midRef(1).toUInt(&ok, 16); if (ok) { description.eventType = EventTypeRaw; description.numericEvent = eventNumber; return description; } } QStringList parts = Utils::transform(event.split("-"), [](const QString &part) { if (part.isEmpty()) return part; QString ret = part; ret[0] = part[0].toUpper(); return ret; }); QMetaEnum subTypeMeta = QMetaEnum::fromType<SubType>(); QStringList extras; int subtype = -1; while (!parts.isEmpty()) { QString key = QString("SubType") + parts.join(QString()); subtype = subTypeMeta.keyToValue(key.toLatin1()); if (subtype == -1) extras.prepend(parts.takeLast()); else break; } if (subtype != -1) { description.subType = SubType(subtype); if (subtype < int(SubTypeEventTypeSoftware)) description.eventType = EventTypeHardware; else if (subtype < int(SubTypeEventTypeCache)) description.eventType = EventTypeSoftware; else description.eventType = EventTypeCache; if (!extras.isEmpty()) { QMetaEnum operationMeta = QMetaEnum::fromType<Operation>(); int operation = operationMeta.keyToValue(QByteArray("Operation") + extras.takeFirst().toLatin1()); if (operation != -1) description.operation = operation; } if (!extras.isEmpty()) { QMetaEnum resultMeta = QMetaEnum::fromType<Result>(); int result = resultMeta.keyToValue(QByteArray("Result") + extras.takeFirst().toLatin1()); if (result != -1) description.result = Result(result); } if (extras.isEmpty()) return description; } description.eventType = EventTypeCustom; description.subType = SubTypeInvalid; description.operation = OperationInvalid; description.result = ResultInvalid; description.customEvent = event; return description; }