var searchData=
[
  ['waitcommand',['WaitCommand',['../classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a18f77daf6b32e5bb456c2bc860140669',1,'armnn::gatordmock::GatordMockService']]],
  ['waitforpacketsent',['WaitForPacketSent',['../classarmnn_1_1profiling_1_1_profiling_service.xhtml#adc4b29d0bfe41252ef520acfa5bc897c',1,'armnn::profiling::ProfilingService::WaitForPacketSent()'],['../classarmnn_1_1profiling_1_1_send_thread.xhtml#aca1be8cb336582dbbdc9dae32475cfea',1,'armnn::profiling::SendThread::WaitForPacketSent()']]],
  ['waitforpacketssent',['WaitForPacketsSent',['../classarmnn_1_1profiling_1_1_swap_profiling_connection_factory_helper.xhtml#a19cea020509e009eb4661618eecf3cf3',1,'armnn::profiling::SwapProfilingConnectionFactoryHelper::WaitForPacketsSent()'],['../_file_only_profiling_decorator_tests_8cpp.xhtml#a9873e084badb22c4b5790529a9c7b704',1,'WaitForPacketsSent():&#160;FileOnlyProfilingDecoratorTests.cpp']]],
  ['waitforreceivingthread',['WaitForReceivingThread',['../classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#a93617d8640d5e93831d06a2ef3c86bef',1,'armnn::gatordmock::GatordMockService']]],
  ['waitforstreammetadata',['WaitForStreamMetaData',['../classarmnn_1_1gatordmock_1_1_gatord_mock_service.xhtml#ac07351dbc304681b2efd5df4958a6735',1,'armnn::gatordmock::GatordMockService']]],
  ['wallclocktimer',['WallClockTimer',['../classarmnn_1_1_wall_clock_timer.xhtml#afaae007fd3b7b6935ceb9b052271d461',1,'armnn::WallClockTimer']]],
  ['what',['what',['../classarmnn_1_1_exception.xhtml#abf843cbb29dec939d0731e491bab6f70',1,'armnn::Exception']]],
  ['while',['while',['../_file_only_profiling_decorator_tests_8cpp.xhtml#aeb41e29e05a71ba26a6fe5291477b4f9',1,'FileOnlyProfilingDecoratorTests.cpp']]],
  ['withoutputtensorindex',['WithOutputTensorIndex',['../structarmnn_tf_parser_1_1_with_output_tensor_index.xhtml#af35b2c8744db2d46349da7ebd547a157',1,'armnnTfParser::WithOutputTensorIndex::WithOutputTensorIndex(const T &amp;value, unsigned int index)'],['../structarmnn_tf_parser_1_1_with_output_tensor_index.xhtml#af8b91afcb4d4623d1a3697baa8a85814',1,'armnnTfParser::WithOutputTensorIndex::WithOutputTensorIndex(T &amp;&amp;value, unsigned int index)']]],
  ['workloaddatacollector',['WorkloadDataCollector',['../classarmnn_1_1_workload_data_collector.xhtml#a202f67f1d2625e7eb9d46c6e080cf0f2',1,'armnn::WorkloadDataCollector']]],
  ['wrapclerror',['WrapClError',['../namespacearmnn.xhtml#a2192b5ff59aacdb27f8b0238323915dc',1,'armnn']]],
  ['write',['Write',['../class_inference_test_image.xhtml#a98be3e32f21051eca5de5728c9cd43bc',1,'InferenceTestImage::Write()'],['../namespacearmnn_utils_1_1_sockets.xhtml#ad5b08981ac047ff0a3c7cb3442b9f161',1,'armnnUtils::Sockets::Write()']]],
  ['writebytes',['WriteBytes',['../namespacearmnn_1_1profiling.xhtml#af0cddaa4e116d294dacaaced90ca341c',1,'armnn::profiling::WriteBytes(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, const void *value, unsigned int valueSize)'],['../namespacearmnn_1_1profiling.xhtml#a1c81dacff6eb2062571f7f4db1cb7617',1,'armnn::profiling::WriteBytes(unsigned char *buffer, unsigned int offset, const void *value, unsigned int valueSize)'],['../namespacearmnn_1_1profiling.xhtml#a7024ffa58173d70426a51899d35266d7',1,'armnn::profiling::WriteBytes(const IPacketBuffer &amp;packetBuffer, unsigned int offset, const void *value, unsigned int valueSize)']]],
  ['writeimagetensorimpl',['WriteImageTensorImpl',['../_image_tensor_generator_8hpp.xhtml#a292c4c49fc943bfcb7ee1ce1435d4690',1,'ImageTensorGenerator.hpp']]],
  ['writeimagetensorimpl_3c_20uint8_5ft_20_3e',['WriteImageTensorImpl&lt; uint8_t &gt;',['../_image_tensor_generator_8hpp.xhtml#a2120283536d91fbdee0d19fff3156994',1,'ImageTensorGenerator.hpp']]],
  ['writepacket',['WritePacket',['../classarmnn_1_1profiling_1_1_file_only_profiling_connection.xhtml#a42eb542b5a1d73d00c4ce474140bb78c',1,'armnn::profiling::FileOnlyProfilingConnection::WritePacket()'],['../classarmnn_1_1profiling_1_1_i_profiling_connection.xhtml#ac78c6bd1a545934a805c88194214b09d',1,'armnn::profiling::IProfilingConnection::WritePacket()'],['../classarmnn_1_1profiling_1_1_profiling_connection_dump_to_file_decorator.xhtml#a42eb542b5a1d73d00c4ce474140bb78c',1,'armnn::profiling::ProfilingConnectionDumpToFileDecorator::WritePacket()'],['../classarmnn_1_1profiling_1_1_socket_profiling_connection.xhtml#a096549d574d3fc51e6948efd24988f3e',1,'armnn::profiling::SocketProfilingConnection::WritePacket()'],['../classarmnn_1_1profiling_1_1_mock_profiling_connection.xhtml#a42eb542b5a1d73d00c4ce474140bb78c',1,'armnn::profiling::MockProfilingConnection::WritePacket(const unsigned char *buffer, uint32_t length) override'],['../classarmnn_1_1profiling_1_1_mock_profiling_connection.xhtml#a4ae3f922dfaad569006a2fc2cc12b3a6',1,'armnn::profiling::MockProfilingConnection::WritePacket(Packet &amp;&amp;packet)'],['../classarmnn_1_1profiling_1_1_test_profiling_connection_base.xhtml#a42eb542b5a1d73d00c4ce474140bb78c',1,'armnn::profiling::TestProfilingConnectionBase::WritePacket()']]],
  ['writetimelineentitybinary',['WriteTimelineEntityBinary',['../namespacearmnn_1_1profiling.xhtml#a27d1c992711722739250e2bbd9ce7ede',1,'armnn::profiling']]],
  ['writetimelineeventbinary',['WriteTimelineEventBinary',['../namespacearmnn_1_1profiling.xhtml#a0a84cb02cb3580ed0bf872cf6b5c09ae',1,'armnn::profiling']]],
  ['writetimelineeventclassbinary',['WriteTimelineEventClassBinary',['../namespacearmnn_1_1profiling.xhtml#ac42b224ad252c5c31ee01c6b77fa4737',1,'armnn::profiling']]],
  ['writetimelinelabelbinarypacket',['WriteTimelineLabelBinaryPacket',['../namespacearmnn_1_1profiling.xhtml#a3583b5fbfe555acc552a63458e665939',1,'armnn::profiling']]],
  ['writetimelinemessagedirectorypackage',['WriteTimelineMessageDirectoryPackage',['../namespacearmnn_1_1profiling.xhtml#aecc8787efb41f033785074f2d362895a',1,'armnn::profiling']]],
  ['writetimelinerelationshipbinary',['WriteTimelineRelationshipBinary',['../namespacearmnn_1_1profiling.xhtml#a2af6f2d1806265a2c84ca05ea8a62fb8',1,'armnn::profiling']]],
  ['writeuint16',['WriteUint16',['../namespacearmnn_1_1profiling.xhtml#ae5ace88c65e65ab7cf5572613601a60d',1,'armnn::profiling::WriteUint16(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint16_t value)'],['../namespacearmnn_1_1profiling.xhtml#a0cf33f59f4e39a415e08497644b0b6f8',1,'armnn::profiling::WriteUint16(unsigned char *buffer, unsigned int offset, uint16_t value)']]],
  ['writeuint32',['WriteUint32',['../namespacearmnn_1_1profiling.xhtml#a3e638748a39d46e2943dfcef94dcb828',1,'armnn::profiling::WriteUint32(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint32_t value)'],['../namespacearmnn_1_1profiling.xhtml#aa3e447531d9bdaad3da25f23edf18fb4',1,'armnn::profiling::WriteUint32(unsigned char *buffer, unsigned int offset, uint32_t value)']]],
  ['writeuint64',['WriteUint64',['../namespacearmnn_1_1profiling.xhtml#a79be042e55fdf16ca562f14cd15d9aa6',1,'armnn::profiling::WriteUint64(const std::unique_ptr&lt; IPacketBuffer &gt; &amp;packetBuffer, unsigned int offset, uint64_t value)'],['../namespacearmnn_1_1profiling.xhtml#af2bb4db604c56391c1361b32402c65a7',1,'armnn::profiling::WriteUint64(unsigned char *buffer, unsigned int offset, uint64_t value)'],['../namespacearmnn_1_1profiling.xhtml#a3b0223f6d6877fe5852c93c4670e32c6',1,'armnn::profiling::WriteUint64(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint64_t value)']]],
  ['writeuint8',['WriteUint8',['../namespacearmnn_1_1profiling.xhtml#af63b6e5ffc769286c32d55a090b1602a',1,'armnn::profiling::WriteUint8(const IPacketBufferPtr &amp;packetBuffer, unsigned int offset, uint8_t value)'],['../namespacearmnn_1_1profiling.xhtml#ae00e76f4552e2dad3bdcf1dd72100b4f',1,'armnn::profiling::WriteUint8(unsigned char *buffer, unsigned int offset, uint8_t value)']]]
];
