• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "TimelineCaptureCommandHandler.hpp"
9 
10 #include <common/include/SwTrace.hpp>
11 
12 namespace arm
13 {
14 
15 namespace pipe
16 {
17 
18 class TimelineDirectoryCaptureCommandHandler : public arm::pipe::CommandHandlerFunctor
19 {
20     // Utils
21     uint32_t uint8_t_size  = sizeof(uint8_t);
22     uint32_t uint32_t_size = sizeof(uint32_t);
23 
24 public:
TimelineDirectoryCaptureCommandHandler(uint32_t familyId,uint32_t packetId,uint32_t version,TimelineCaptureCommandHandler & timelineCaptureCommandHandler,bool quietOperation=false)25     TimelineDirectoryCaptureCommandHandler(uint32_t familyId,
26                                            uint32_t packetId,
27                                            uint32_t version,
28                                            TimelineCaptureCommandHandler& timelineCaptureCommandHandler,
29                                            bool quietOperation = false)
30         : CommandHandlerFunctor(familyId, packetId, version)
31         , m_TimelineCaptureCommandHandler(timelineCaptureCommandHandler)
32         , m_QuietOperation(quietOperation)
33     {}
34 
35     void operator()(const arm::pipe::Packet& packet) override;
36 
37     arm::pipe::SwTraceHeader m_SwTraceHeader;
38     std::vector<arm::pipe::SwTraceMessage> m_SwTraceMessages;
39 
40 private:
41     void ParseData(const arm::pipe::Packet& packet);
42     void Print();
43 
44     TimelineCaptureCommandHandler& m_TimelineCaptureCommandHandler;
45     bool m_QuietOperation;
46 };
47 
48 } //namespace pipe
49 
50 } //namespace arm
51