OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * |
3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright 2015, Google Inc. |
4 * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 4 * All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions are | 7 * modification, are permitted provided that the following conditions are |
8 * met: | 8 * met: |
9 * | 9 * |
10 * * Redistributions of source code must retain the above copyright | 10 * * Redistributions of source code must retain the above copyright |
11 * notice, this list of conditions and the following disclaimer. | 11 * notice, this list of conditions and the following disclaimer. |
12 * * Redistributions in binary form must reproduce the above | 12 * * Redistributions in binary form must reproduce the above |
13 * copyright notice, this list of conditions and the following disclaimer | 13 * copyright notice, this list of conditions and the following disclaimer |
14 * in the documentation and/or other materials provided with the | 14 * in the documentation and/or other materials provided with the |
15 * distribution. | 15 * distribution. |
16 * * Neither the name of Google Inc. nor the names of its | 16 * * Neither the name of Google Inc. nor the names of its |
17 * contributors may be used to endorse or promote products derived from | 17 * contributors may be used to endorse or promote products derived from |
18 * this software without specific prior written permission. | 18 * this software without specific prior written permission. |
19 * | 19 * |
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 31 * |
31 */ | 32 */ |
32 | 33 |
33 #ifndef DOMWindowBase64_h | 34 #import "GRXWriteable.h" |
34 #define DOMWindowBase64_h | |
35 | 35 |
36 #include "wtf/text/WTFString.h" | 36 @implementation GRXWriteable { |
| 37 GRXValueHandler _valueHandler; |
| 38 GRXCompletionHandler _completionHandler; |
| 39 } |
37 | 40 |
38 namespace blink { | 41 + (instancetype)writeableWithSingleHandler:(GRXSingleHandler)handler { |
| 42 if (!handler) { |
| 43 return [[self alloc] init]; |
| 44 } |
| 45 return [[self alloc] initWithValueHandler:^(id value) { |
| 46 handler(value, nil); |
| 47 } completionHandler:^(NSError *errorOrNil) { |
| 48 if (errorOrNil) { |
| 49 handler(nil, errorOrNil); |
| 50 } |
| 51 }]; |
| 52 } |
39 | 53 |
40 class ExceptionState; | 54 + (instancetype)writeableWithEventHandler:(GRXEventHandler)handler { |
| 55 if (!handler) { |
| 56 return [[self alloc] init]; |
| 57 } |
| 58 return [[self alloc] initWithValueHandler:^(id value) { |
| 59 handler(NO, value, nil); |
| 60 } completionHandler:^(NSError *errorOrNil) { |
| 61 handler(YES, nil, errorOrNil); |
| 62 }]; |
| 63 } |
41 | 64 |
42 class DOMWindowBase64 { | 65 - (instancetype)init { |
43 public: | 66 return [self initWithValueHandler:nil completionHandler:nil]; |
44 String btoa(const String& stringToEncode, ExceptionState&); | 67 } |
45 String atob(const String& encodedString, ExceptionState&); | |
46 }; | |
47 | 68 |
48 } // namespace blink | 69 // Designated initializer |
| 70 - (instancetype)initWithValueHandler:(GRXValueHandler)valueHandler |
| 71 completionHandler:(GRXCompletionHandler)completionHandler { |
| 72 if ((self = [super init])) { |
| 73 _valueHandler = valueHandler; |
| 74 _completionHandler = completionHandler; |
| 75 } |
| 76 return self; |
| 77 } |
49 | 78 |
50 #endif // DOMWindowBase64_h | 79 - (void)writeValue:(id)value { |
| 80 if (_valueHandler) { |
| 81 _valueHandler(value); |
| 82 } |
| 83 } |
| 84 |
| 85 - (void)writesFinishedWithError:(NSError *)errorOrNil { |
| 86 if (_completionHandler) { |
| 87 _completionHandler(errorOrNil); |
| 88 } |
| 89 } |
| 90 @end |
OLD | NEW |