blob: 9827aa05ba7e88b325a2becd217f2a19b9ba9ff4 [file] [log] [blame]
Francis Murtagh11f99b42019-08-16 11:28:52 +01001//
Jim Flynnbbfe6032020-07-20 16:57:44 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Francis Murtagh11f99b42019-08-16 11:28:52 +01003// SPDX-License-Identifier: MIT
4//
5
Jan Eilers8eb25602020-03-09 12:13:48 +00006#pragma once
7
Finn Williams56b465d2020-05-15 13:34:12 +01008#include <Packet.hpp>
Jan Eilers8eb25602020-03-09 12:13:48 +00009#include <cstdint>
Derek Lamberti1dd75b32019-12-10 21:23:23 +000010
Jim Flynnbbfe6032020-07-20 16:57:44 +010011namespace arm
Aron Virginas-Tare898db92019-08-22 12:56:34 +010012{
13
Jim Flynnbbfe6032020-07-20 16:57:44 +010014namespace pipe
Aron Virginas-Tare898db92019-08-22 12:56:34 +010015{
16
Francis Murtagh11f99b42019-08-16 11:28:52 +010017class CommandHandlerFunctor
18{
19public:
Jim Flynn397043f2019-10-17 17:37:10 +010020 CommandHandlerFunctor(uint32_t familyId, uint32_t packetId, uint32_t version)
21 : m_FamilyId(familyId),
22 m_PacketId(packetId)
Matteo Martincighc2728f92019-10-07 12:35:21 +010023 , m_Version(version)
24 {}
Francis Murtagh11f99b42019-08-16 11:28:52 +010025
Jim Flynn397043f2019-10-17 17:37:10 +010026 uint32_t GetFamilyId() const;
Francis Murtagh11f99b42019-08-16 11:28:52 +010027 uint32_t GetPacketId() const;
28 uint32_t GetVersion() const;
29
Derek Lamberti1dd75b32019-12-10 21:23:23 +000030 virtual void operator()(const Packet& packet) = 0;
Francis Murtagh11f99b42019-08-16 11:28:52 +010031
Jim Flynnc4728ad2019-10-07 15:15:12 +010032 virtual ~CommandHandlerFunctor() {}
33
Francis Murtagh11f99b42019-08-16 11:28:52 +010034private:
Jim Flynn397043f2019-10-17 17:37:10 +010035 uint32_t m_FamilyId;
Francis Murtagh11f99b42019-08-16 11:28:52 +010036 uint32_t m_PacketId;
37 uint32_t m_Version;
Aron Virginas-Tare898db92019-08-22 12:56:34 +010038};
39
Jim Flynnbbfe6032020-07-20 16:57:44 +010040} // namespace pipe
Aron Virginas-Tare898db92019-08-22 12:56:34 +010041
Jim Flynnbbfe6032020-07-20 16:57:44 +010042} // namespace arm