1 /* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef skpdiff_util_DEFINED 9 #define skpdiff_util_DEFINED 10 11 #include "SkString.h" 12 #include "SkTArray.h" 13 14 #if SK_SUPPORT_OPENCL 15 #if defined(SK_BUILD_FOR_MAC) 16 # include <OpenCL/cl.h> 17 #else 18 # include <CL/cl.h> 19 #endif 20 21 /** 22 * Converts an OpenCL error number into the string of its enumeration name. 23 * @param err The OpenCL error number 24 * @return The string of the name of the error; "UNKOWN" if the error number is invalid 25 */ 26 const char* cl_error_to_string(cl_int err); 27 #endif 28 29 /** 30 * Get a positive monotonic real-time measure of the amount of seconds since some undefined epoch. 31 * Maximum precision is the goal of this routine. 32 * @return Amount of time in seconds since some epoch 33 */ 34 double get_seconds(); 35 36 /** 37 * Get file entries of the given directory. 38 * @param path A path to a directory to enumerate 39 * @param entries A vector to return the results into 40 * @return True on success, false otherwise 41 */ 42 bool get_directory(const char path[], SkTArray<SkString>* entries); 43 44 /** 45 * Gets the files that match the specified pattern in sorted order. 46 * @param globPattern The pattern to use. Patterns must be valid paths, optionally with wildcards (*) 47 * @param entries An array to return the results into 48 * @return True on success, false otherwise 49 */ 50 bool glob_files(const char globPattern[], SkTArray<SkString>* entries); 51 52 /** 53 * Gets the absolute version of the given path. 54 * @param path The absolute or relative path to expand 55 * @return The absolute path of the given path on success, or an empty string on failure. 56 */ 57 SkString get_absolute_path(const SkString& path); 58 59 60 #endif 61