Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Side by Side Diff: include/core/SkError.h

Issue 13699004: first draft of error checking / reporting API (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: remove unnecessary include, delete Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gyp/tests.gyp ('k') | src/core/SkError.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 SkError_DEFINED
9 #define SkError_DEFINED
10
11
12 /** \file SkError.h
13 */
14
15 enum SkError {
16 /** All is well
17 */
18 kNoError_SkError=0,
19
20 /** User argument passed to Skia function was invalid: NULL when that’s
21 * not allowed, out of numeric range, bad enum, or violating some
22 * other general precondition.
23 */
24 kInvalidArgument_SkError,
25
26 /** User tried to perform some operation in a state when the operation
27 * was not legal, or the operands make no sense (e.g., asking for
28 * pixels from an SkPictureCanvas). Other examples might be
29 * inset()’ing a rectangle to make it degenerate (negative width/height).
30 */
31 kInvalidOperation_SkError,
32
33 /** Probably not needed right now, but in the future we could have opaque
34 * handles for SkPictures floating around, and it would be a good idea
35 * to anticipate this kind of issue.
36 */
37 kInvalidHandle_SkError,
38
39 /** This is probably not possible because paint surely has defaults for
40 * everything, but perhaps a paint can get into a bad state somehow.
41 */
42 kInvalidPaint_SkError,
43
44 /** Skia was unable to allocate memory to perform some task.
45 */
46 kOutOfMemory_SkError,
47
48 /** Skia failed while trying to consume some external resource.
49 */
50 kParseError_SkError
51 };
52
53 /** Return the current per-thread error code. Error codes are "sticky"; they
54 * are not not reset by subsequent successful operations.
55 */
56 SkError SkGetLastError();
57
58 /** Clear the current per-thread error code back to kNoError_SkError.
59 */
60 void SkClearLastError();
61
62 /** Type for callback functions to be invoked whenever an error is registered.
63 * Callback functions take the error code being set, as well as a context
64 * argument that is provided when the callback is registered.
65 */
66 typedef void (*SkErrorCallbackFunction)(SkError, void *);
67
68 /** Set the current per-thread error callback.
69 *
70 * @param cb The callback function to be invoked. Passing NULL
71 * for cb will revert to the default error callback which
72 * does nothing on release builds, but on debug builds will
73 * print an informative error message to the screen.
74 * @param context An arbitrary pointer that will be passed to
75 * the provided callback function.
76 */
77 void SkSetErrorCallback(SkErrorCallbackFunction cb, void *context);
78
79 /** Get a human-readable description of the last (per-thread) error that
80 * occurred. The returned error message will include not only a human
81 * readable version of the error code, but also information about the
82 * conditions that led to the error itself.
83 */
84 const char *SkGetLastErrorString();
85
86 #endif /* SkError_DEFINED */
OLDNEW
« no previous file with comments | « gyp/tests.gyp ('k') | src/core/SkError.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698