1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "perfetto/tracing/interceptor.h"
18 
19 #include "perfetto/tracing/internal/tracing_muxer.h"
20 
21 namespace perfetto {
22 
23 InterceptorBase::~InterceptorBase() = default;
24 InterceptorBase::ThreadLocalState::~ThreadLocalState() = default;
25 
26 // static
RegisterImpl(const InterceptorDescriptor & descriptor,std::function<std::unique_ptr<InterceptorBase> ()> factory,InterceptorBase::TLSFactory tls_factory,InterceptorBase::TracePacketCallback on_trace_packet)27 void InterceptorBase::RegisterImpl(
28     const InterceptorDescriptor& descriptor,
29     std::function<std::unique_ptr<InterceptorBase>()> factory,
30     InterceptorBase::TLSFactory tls_factory,
31     InterceptorBase::TracePacketCallback on_trace_packet) {
32   auto* tracing_impl = internal::TracingMuxer::Get();
33   tracing_impl->RegisterInterceptor(descriptor, factory, tls_factory,
34                                     on_trace_packet);
35 }
36 
37 }  // namespace perfetto
38