/*
 * Copyright (C) 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";
package android.util;

option java_multiple_files = true;

import "frameworks/base/core/proto/android/privacy.proto";

// Proto representation of event.logtags.
// Usually sit in /system/etc/event-log-tags.
message EventLogTagMapProto {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    repeated EventLogTag event_log_tags = 1;
}

message EventLogTag {
    option (.android.msg_privacy).dest = DEST_AUTOMATIC;

    optional uint32 tag_number = 1; // keyed by tag number.
    optional string tag_name = 2;

    message ValueDescriptor {
        option (.android.msg_privacy).dest = DEST_AUTOMATIC;

        optional string name = 1;

        enum DataType {
            UNKNOWN = 0;
            INT = 1;
            LONG = 2;
            STRING = 3;
            LIST = 4;
            FLOAT = 5;
        }
        optional DataType type = 2;

        enum DataUnit {
            UNSET = 0;          // this field is optional, so default is unset
            OBJECTS = 1;        // Number of objects
            BYTES = 2;          // Number of bytes (default for type of int/long)
            MILLISECONDS = 3;   // Number of milliseconds
            ALLOCATIONS = 4;    // Number of allocations
            ID = 5;             // Id
            PERCENT = 6;        // Percent
            SECONDS = 115;      // 's', Number of seconds (monotonic time)
        }
        optional DataUnit unit = 3;
    }
    repeated ValueDescriptor value_descriptors = 3;
}
