1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include <arm_compute/core/CL/CLCompileContext.h> 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker #include <flatbuffers/flatbuffers.h> 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker namespace armnn 13*89c4ff92SAndroid Build Coastguard Worker { 14*89c4ff92SAndroid Build Coastguard Worker 15*89c4ff92SAndroid Build Coastguard Worker class ClContextSerializer 16*89c4ff92SAndroid Build Coastguard Worker { 17*89c4ff92SAndroid Build Coastguard Worker public: 18*89c4ff92SAndroid Build Coastguard Worker ClContextSerializer() = default; 19*89c4ff92SAndroid Build Coastguard Worker ~ClContextSerializer() = default; 20*89c4ff92SAndroid Build Coastguard Worker 21*89c4ff92SAndroid Build Coastguard Worker /// Serializes the CLCompileContext built-in programs 22*89c4ff92SAndroid Build Coastguard Worker /// @param [in] clCompileContext The CLCompileContext to be serialized. 23*89c4ff92SAndroid Build Coastguard Worker void Serialize(const arm_compute::CLCompileContext& clCompileContext); 24*89c4ff92SAndroid Build Coastguard Worker 25*89c4ff92SAndroid Build Coastguard Worker /// Serializes the ClContext to the stream. 26*89c4ff92SAndroid Build Coastguard Worker /// @param [stream] the stream to save to 27*89c4ff92SAndroid Build Coastguard Worker /// @return true if ClContext is Serialized to the Stream, false otherwise 28*89c4ff92SAndroid Build Coastguard Worker bool SaveSerializedToStream(std::ostream& stream); 29*89c4ff92SAndroid Build Coastguard Worker 30*89c4ff92SAndroid Build Coastguard Worker private: 31*89c4ff92SAndroid Build Coastguard Worker /// FlatBufferBuilder to create the CLContext FlatBuffers. 32*89c4ff92SAndroid Build Coastguard Worker flatbuffers::FlatBufferBuilder m_FlatBufferBuilder; 33*89c4ff92SAndroid Build Coastguard Worker }; 34*89c4ff92SAndroid Build Coastguard Worker 35*89c4ff92SAndroid Build Coastguard Worker } // namespace armnn