aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/lwtrace/event.h
blob: d88f6c700d7a942004c5abb868afeb4b7b984876 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once

#include "preprocessor.h"
#include "signature.h"
#include "param_traits.h"

#include <library/cpp/lwtrace/protos/lwtrace.pb.h> 

namespace NLWTrace {
    // Common class for all events
    struct TEvent {
        const char* Name;
        const char* Groups[LWTRACE_MAX_GROUPS + 1];
        TSignature Signature;

        const char* GetProvider() const {
            return Groups[0];
        }

        void ToProtobuf(TEventPb& pb) const {
            pb.SetName(Name);
            for (const char* const* gi = Groups; *gi != nullptr; gi++) {
                pb.AddGroups(*gi);
            }
            Signature.ToProtobuf(pb);
        }
    };

}