blob: 1599914bac9b458cb42604369d18b64b0f045ff9 [file] [log] [blame]
Matteo Martincigh54fb9572019-10-02 12:50:57 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "IProfilingConnection.hpp"
9
Jim Flynn4c9ed1d2022-01-23 23:57:20 +000010#include <armnn/profiling/ProfilingOptions.hpp>
Matteo Martincigh54fb9572019-10-02 12:50:57 +010011
12#include <memory>
13
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000014namespace arm
Matteo Martincigh54fb9572019-10-02 12:50:57 +010015{
16
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000017namespace pipe
Matteo Martincigh54fb9572019-10-02 12:50:57 +010018{
19
20class IProfilingConnectionFactory
21{
22public:
Jim Flynn4c9ed1d2022-01-23 23:57:20 +000023 using ExternalProfilingOptions = ProfilingOptions;
Matteo Martincigh54fb9572019-10-02 12:50:57 +010024 using IProfilingConnectionPtr = std::unique_ptr<IProfilingConnection>;
25
26 virtual ~IProfilingConnectionFactory() {}
27
Jim Flynn4c9ed1d2022-01-23 23:57:20 +000028 virtual IProfilingConnectionPtr GetProfilingConnection(const ProfilingOptions& options) const = 0;
Matteo Martincigh54fb9572019-10-02 12:50:57 +010029};
30
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000031} // namespace pipe
Matteo Martincigh54fb9572019-10-02 12:50:57 +010032
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000033} // namespace arm