1f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#ifndef AutoDecodeCancel_DEFINED
2f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#define AutoDecodeCancel_DEFINED
3f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
4f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#include <jni.h>
5f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#include "SkImageDecoder.h"
6f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
7f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wenclass AutoDecoderCancel {
8f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wenpublic:
9f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    AutoDecoderCancel(jobject options, SkImageDecoder* decoder);
10f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    ~AutoDecoderCancel();
11f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
12f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    static bool RequestCancel(jobject options);
13f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
14f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wenprivate:
15f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    AutoDecoderCancel*  fNext;
16f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    AutoDecoderCancel*  fPrev;
17f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    jobject             fJOptions;  // java options object
18f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    SkImageDecoder*     fDecoder;
19f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
20f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#ifdef SK_DEBUG
21f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    static void Validate();
22f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#else
23f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen    static void Validate() {}
24f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#endif
25f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen};
26f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen
27f1f48bc7f200f54c76b22d845d8ba8419879b375Joseph Wen#endif
28