ArmNN
 22.05
SwapProfilingConnectionFactoryHelper Class Reference

#include <ProfilingTests.hpp>

Inheritance diagram for SwapProfilingConnectionFactoryHelper:

Public Types

using MockProfilingConnectionFactoryPtr = std::unique_ptr< MockProfilingConnectionFactory >
 

Public Member Functions

 SwapProfilingConnectionFactoryHelper (uint16_t maxGlobalCounterId, IInitialiseProfilingService &initialiser, ProfilingService &profilingService)
 
 ~SwapProfilingConnectionFactoryHelper ()
 
MockProfilingConnectionGetMockProfilingConnection ()
 
void ForceTransitionToState (ProfilingState newState)
 
long WaitForPacketsSent (MockProfilingConnection *mockProfilingConnection, MockProfilingConnection::PacketType packetType, uint32_t length=0, uint32_t timeout=1000)
 

Detailed Description

Definition at line 165 of file ProfilingTests.hpp.

Member Typedef Documentation

◆ MockProfilingConnectionFactoryPtr

Definition at line 168 of file ProfilingTests.hpp.

Constructor & Destructor Documentation

◆ SwapProfilingConnectionFactoryHelper()

SwapProfilingConnectionFactoryHelper ( uint16_t  maxGlobalCounterId,
IInitialiseProfilingService &  initialiser,
ProfilingService &  profilingService 
)
inline

Definition at line 170 of file ProfilingTests.hpp.

173  : ProfilingService(maxGlobalCounterId,
174  initialiser,
175  arm::pipe::ARMNN_SOFTWARE_INFO,
176  arm::pipe::ARMNN_SOFTWARE_VERSION,
177  arm::pipe::ARMNN_HARDWARE_VERSION)
178  , m_ProfilingService(profilingService)
179  , m_MockProfilingConnectionFactory(new MockProfilingConnectionFactory())
180  , m_BackupProfilingConnectionFactory(nullptr)
181 
182  {
183  CHECK(m_MockProfilingConnectionFactory);
184  SwapProfilingConnectionFactory(m_ProfilingService,
185  m_MockProfilingConnectionFactory.get(),
186  m_BackupProfilingConnectionFactory);
187  CHECK(m_BackupProfilingConnectionFactory);
188  }

◆ ~SwapProfilingConnectionFactoryHelper()

Definition at line 189 of file ProfilingTests.hpp.

190  {
191  CHECK(m_BackupProfilingConnectionFactory);
192  IProfilingConnectionFactory* temp = nullptr;
193  SwapProfilingConnectionFactory(m_ProfilingService,
194  m_BackupProfilingConnectionFactory,
195  temp);
196  }

Member Function Documentation

◆ ForceTransitionToState()

void ForceTransitionToState ( ProfilingState  newState)
inline

Definition at line 204 of file ProfilingTests.hpp.

205  {
206  TransitionToState(m_ProfilingService, newState);
207  }

◆ GetMockProfilingConnection()

MockProfilingConnection* GetMockProfilingConnection ( )
inline

Definition at line 198 of file ProfilingTests.hpp.

199  {
200  IProfilingConnection* profilingConnection = GetProfilingConnection(m_ProfilingService);
201  return armnn::PolymorphicDowncast<MockProfilingConnection*>(profilingConnection);
202  }

◆ WaitForPacketsSent()

long WaitForPacketsSent ( MockProfilingConnection mockProfilingConnection,
MockProfilingConnection::PacketType  packetType,
uint32_t  length = 0,
uint32_t  timeout = 1000 
)
inline

Definition at line 209 of file ProfilingTests.hpp.

References MockProfilingConnection::CheckForPacket().

213  {
214  long packetCount = mockProfilingConnection->CheckForPacket({ packetType, length });
215  // The first packet we receive may not be the one we are looking for, so keep looping until till we find it,
216  // or until WaitForPacketsSent times out
217  while(packetCount == 0 && timeout != 0)
218  {
219  std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
220  // Wait for a notification from the send thread
221  ProfilingService::WaitForPacketSent(m_ProfilingService, timeout);
222 
223  std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
224 
225  // We need to make sure the timeout does not reset each time we call WaitForPacketsSent
226  uint32_t elapsedTime = static_cast<uint32_t>(
227  std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count());
228 
229  packetCount = mockProfilingConnection->CheckForPacket({packetType, length});
230 
231  if (elapsedTime > timeout)
232  {
233  break;
234  }
235 
236  timeout -= elapsedTime;
237  }
238  return packetCount;
239  }

The documentation for this class was generated from the following file: