1e5c31af7Sopenharmony_ci#ifndef _VKSSERVICES_HPP
2e5c31af7Sopenharmony_ci#define _VKSSERVICES_HPP
3e5c31af7Sopenharmony_ci
4e5c31af7Sopenharmony_ci/*-------------------------------------------------------------------------
5e5c31af7Sopenharmony_ci * Vulkan CTS Framework
6e5c31af7Sopenharmony_ci * --------------------
7e5c31af7Sopenharmony_ci *
8e5c31af7Sopenharmony_ci * Copyright (c) 2021 The Khronos Group Inc.
9e5c31af7Sopenharmony_ci *
10e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
11e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License.
12e5c31af7Sopenharmony_ci * You may obtain a copy of the License at
13e5c31af7Sopenharmony_ci *
14e5c31af7Sopenharmony_ci *      http://www.apache.org/licenses/LICENSE-2.0
15e5c31af7Sopenharmony_ci *
16e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
17e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
18e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and
20e5c31af7Sopenharmony_ci * limitations under the License.
21e5c31af7Sopenharmony_ci *
22e5c31af7Sopenharmony_ci *-------------------------------------------------------------------------*/
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ci#include "vksCommon.hpp"
25e5c31af7Sopenharmony_ci#include "vksStructsVKSC.hpp"
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_cinamespace vksc_server
28e5c31af7Sopenharmony_ci{
29e5c31af7Sopenharmony_ci
30e5c31af7Sopenharmony_cibool StoreFile				(const string&						uniqueFilename,
31e5c31af7Sopenharmony_ci							 const vector<u8>&					content);
32e5c31af7Sopenharmony_cibool GetFile				(const string&						path,
33e5c31af7Sopenharmony_ci							 vector<u8>&						content,
34e5c31af7Sopenharmony_ci							 bool								removeAfter);
35e5c31af7Sopenharmony_cibool AppendFile				(const string&						path,
36e5c31af7Sopenharmony_ci							 const vector<u8>&					content,
37e5c31af7Sopenharmony_ci							 bool								clear);
38e5c31af7Sopenharmony_civoid CreateVulkanSCCache	(const VulkanPipelineCacheInput&	input,
39e5c31af7Sopenharmony_ci							 int								caseFraction,
40e5c31af7Sopenharmony_ci							 vector<u8>&						binary,
41e5c31af7Sopenharmony_ci							 const CmdLineParams&				cmdLineParams,
42e5c31af7Sopenharmony_ci							 const std::string&					logFile);
43e5c31af7Sopenharmony_cibool CompileShader			(const SourceVariant&				source,
44e5c31af7Sopenharmony_ci							 const string&						commandLine,
45e5c31af7Sopenharmony_ci							 vector<u8>&						binary	);
46e5c31af7Sopenharmony_ci
47e5c31af7Sopenharmony_ci}
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_ci#endif // _VKSSERVICES_HPP
50