1 #ifndef _VKSIPC_HPP 2 #define _VKSIPC_HPP 3 4 /*------------------------------------------------------------------------- 5 * Vulkan CTS Framework 6 * -------------------- 7 * 8 * Copyright (c) 2021 The Khronos Group Inc. 9 * 10 * Licensed under the Apache License, Version 2.0 (the "License"); 11 * you may not use this file except in compliance with the License. 12 * You may obtain a copy of the License at 13 * 14 * http://www.apache.org/licenses/LICENSE-2.0 15 * 16 * Unless required by applicable law or agreed to in writing, software 17 * distributed under the License is distributed on an "AS IS" BASIS, 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 * See the License for the specific language governing permissions and 20 * limitations under the License. 21 * 22 *-------------------------------------------------------------------------*/ 23 24 #include "vksCommon.hpp" 25 26 #include <memory> 27 28 namespace vksc_server 29 { 30 31 namespace ipc 32 { 33 34 struct ParentImpl; 35 36 struct Parent 37 { 38 Parent (const int portOffset); 39 ~Parent (); 40 41 bool SetFile (const string& name, const std::vector<u8>& content); 42 vector<u8> GetFile (const string& name); 43 44 private: 45 std::unique_ptr<ParentImpl> impl; 46 }; 47 48 struct ChildImpl; 49 50 struct Child 51 { 52 Child (const int portOffset); 53 ~Child (); 54 55 bool SetFile (const string& name, const std::vector<u8>& content); 56 vector<u8> GetFile (const string& name); 57 58 private: 59 std::unique_ptr<ChildImpl> impl; 60 }; 61 62 } // ipc 63 64 } // vksc_server 65 66 #endif // _VKSIPC_HPP 67