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 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 */ 26const 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 */ 34double 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 */ 42bool 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 */ 50bool 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 */ 57SkString get_absolute_path(const SkString& path); 58 59 60#endif 61