OLD | NEW |
| (Empty) |
1 | |
2 /* | |
3 * Copyright 2012 Google Inc. | |
4 * | |
5 * Use of this source code is governed by a BSD-style license that can be | |
6 * found in the LICENSE file. | |
7 */ | |
8 | |
9 #ifndef SkBenchLogger_DEFINED | |
10 #define SkBenchLogger_DEFINED | |
11 | |
12 #include "SkTypes.h" | |
13 #include "SkString.h" | |
14 #include <stdio.h> | |
15 | |
16 class SkFILEWStream; | |
17 | |
18 /** | |
19 * Class that allows logging to a file while simultaneously logging to stdout/st
derr. | |
20 */ | |
21 class SkBenchLogger { | |
22 public: | |
23 SkBenchLogger(); | |
24 | |
25 /** | |
26 * Not virtual, since this class is not intended to be subclassed. | |
27 */ | |
28 ~SkBenchLogger(); | |
29 | |
30 /** | |
31 * Specify a file to write progress logs to. Unless this is called with a va
lid file path, | |
32 * SkBenchLogger will only write to stdout/stderr. | |
33 */ | |
34 bool SetLogFile(const char file[]); | |
35 | |
36 /** | |
37 * Log an error to stderr, taking a C style string as input. | |
38 */ | |
39 void logError(const char msg[]) { this->nativeLogError(msg); } | |
40 | |
41 /** | |
42 * Log an error to stderr, taking an SkString as input. | |
43 */ | |
44 void logError(const SkString& str) { this->nativeLogError(str.c_str()); } | |
45 | |
46 /** | |
47 * Log the progress of the bench tool to both stdout and the log file specif
ied by SetLogFile, | |
48 * if any, taking a C style string as input. | |
49 */ | |
50 void logProgress(const char msg[]) { | |
51 this->nativeLogProgress(msg); | |
52 this->fileWrite(msg, strlen(msg)); | |
53 } | |
54 | |
55 /** | |
56 * Log the progress of the bench tool to both stdout and the log file specif
ied by SetLogFile, | |
57 * if any, taking an SkString as input. | |
58 */ | |
59 void logProgress(const SkString& str) { | |
60 this->nativeLogProgress(str.c_str()); | |
61 this->fileWrite(str.c_str(), str.size()); | |
62 } | |
63 | |
64 private: | |
65 #ifdef SK_BUILD_FOR_ANDROID | |
66 void nativeLogError(const char msg[]) { SkDebugf("%s", msg); } | |
67 #else | |
68 void nativeLogError(const char msg[]) { fprintf(stderr, "%s", msg); } | |
69 #endif | |
70 void nativeLogProgress(const char msg[]) { SkDebugf("%s", msg); } | |
71 | |
72 void fileWrite(const char msg[], size_t size); | |
73 | |
74 SkFILEWStream* fFileStream; | |
75 }; | |
76 | |
77 #endif // SkBenchLogger_DEFINED | |
OLD | NEW |