| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef BytesConsumer_h | 5 #ifndef BytesConsumer_h |
| 6 #define BytesConsumer_h | 6 #define BytesConsumer_h |
| 7 | 7 |
| 8 #include "modules/ModulesExport.h" | 8 #include "modules/ModulesExport.h" |
| 9 #include "platform/blob/BlobData.h" | 9 #include "platform/blob/BlobData.h" |
| 10 #include "platform/heap/Handle.h" | 10 #include "platform/heap/Handle.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 // | 67 // |
| 68 // This function is not called when the state change is trigerred by | 68 // This function is not called when the state change is trigerred by |
| 69 // public methods called by a user. For example, when a user reads | 69 // public methods called by a user. For example, when a user reads |
| 70 // data by |read| and the state changes from waiting to readable, this | 70 // data by |read| and the state changes from waiting to readable, this |
| 71 // function will not be called. | 71 // function will not be called. |
| 72 virtual void onStateChange() = 0; | 72 virtual void onStateChange() = 0; |
| 73 }; | 73 }; |
| 74 | 74 |
| 75 virtual ~BytesConsumer() {} | 75 virtual ~BytesConsumer() {} |
| 76 | 76 |
| 77 // Reads data into |buffer| up to |size| bytes. The actual read size will | |
| 78 // be stored in |*readSize|. This function cannot be called when a two-phase | |
| 79 // read is in progress. | |
| 80 // Returns Ok when readable. | |
| 81 // Returns ShouldWait when it's waiting. | |
| 82 // Returns Done when closed. | |
| 83 // Returns Error when errored. | |
| 84 // |buffer| can be null if |size| is 0. | |
| 85 // |*readSize| will be set to 0 if not readable. | |
| 86 virtual Result read(char* buffer, size_t /* size */, size_t* readSize) WARN_
UNUSED_RESULT; | |
| 87 | |
| 88 // Begins a two-phase read. On success, the function stores a buffer | 77 // Begins a two-phase read. On success, the function stores a buffer |
| 89 // that contains the read data of length |*available| into |*buffer|. | 78 // that contains the read data of length |*available| into |*buffer|. |
| 90 // Returns Ok when readable. | 79 // Returns Ok when readable. |
| 91 // Returns ShouldWait when it's waiting. | 80 // Returns ShouldWait when it's waiting. |
| 92 // Returns Done when it's closed. | 81 // Returns Done when it's closed. |
| 93 // Returns Error when errored. | 82 // Returns Error when errored. |
| 94 // When not readable, the caller don't have to (and must not) call | 83 // When not readable, the caller don't have to (and must not) call |
| 95 // endRead, because the read session implicitly ends in that case. | 84 // endRead, because the read session implicitly ends in that case. |
| 96 // | 85 // |
| 97 // |*buffer| will become invalid when this object becomes unreachable, | 86 // |*buffer| will become invalid when this object becomes unreachable, |
| 98 // even if endRead is not called. | 87 // even if endRead is not called. |
| 99 // | 88 // |
| 100 // |*buffer| will be set to null and |*available| will be set to 0 if not | 89 // |*buffer| will be set to null and |*available| will be set to 0 if not |
| 101 // readable. | 90 // readable. |
| 102 virtual Result beginRead(const char** buffer, size_t* available) WARN_UNUSED
_RESULT = 0; | 91 virtual Result beginRead(const char** buffer, size_t* available) WARN_UNUSED
_RESULT = 0; |
| 103 | 92 |
| 104 // Ends a two-phase read. | 93 // Ends a two-phase read. |
| 105 virtual Result endRead(size_t readSize) WARN_UNUSED_RESULT = 0; | 94 virtual Result endRead(size_t readSize) WARN_UNUSED_RESULT = 0; |
| 106 | 95 |
| 107 // Drains the data as a BlobDataHandle. | 96 // Drains the data as a BlobDataHandle. |
| 108 // When this function returns a non-null value, the returned blob handle | 97 // When this function returns a non-null value, the returned blob handle |
| 109 // contains bytes that would be read through read, beginRead and | 98 // contains bytes that would be read through beginRead and |
| 110 // endRead functions without calling this function. In such a case, this | 99 // endRead functions without calling this function. In such a case, this |
| 111 // object becomes closed. | 100 // object becomes closed. |
| 112 // When this function returns null value, this function does nothing. | 101 // When this function returns null value, this function does nothing. |
| 113 // When |policy| is DisallowBlobWithInvalidSize, this function doesn't | 102 // When |policy| is DisallowBlobWithInvalidSize, this function doesn't |
| 114 // return a non-null blob handle with unspecified size. | 103 // return a non-null blob handle with unspecified size. |
| 115 // The type of the returned blob handle may not be meaningful. | 104 // The type of the returned blob handle may not be meaningful. |
| 116 virtual PassRefPtr<BlobDataHandle> drainAsBlobDataHandle(BlobSizePolicy = Bl
obSizePolicy::DisallowBlobWithInvalidSize) { return nullptr; } | 105 virtual PassRefPtr<BlobDataHandle> drainAsBlobDataHandle(BlobSizePolicy = Bl
obSizePolicy::DisallowBlobWithInvalidSize) { return nullptr; } |
| 117 | 106 |
| 118 // Drains the data as an EncodedFormData. | 107 // Drains the data as an EncodedFormData. |
| 119 // When this function returns a non-null value, the returned form data | 108 // When this function returns a non-null value, the returned form data |
| 120 // contains bytes that would be read through read, beginRead and | 109 // contains bytes that would be read through beginRead and |
| 121 // endRead functions without calling this function. In such a case, this | 110 // endRead functions without calling this function. In such a case, this |
| 122 // object becomes closed. | 111 // object becomes closed. |
| 123 // When this function returns null value, this function does nothing. | 112 // When this function returns null value, this function does nothing. |
| 124 // This function returns a non-null form data when the handle is made | 113 // This function returns a non-null form data when the handle is made |
| 125 // from an EncodedFormData-convertible value. | 114 // from an EncodedFormData-convertible value. |
| 126 virtual PassRefPtr<EncodedFormData> drainAsFormData() { return nullptr; } | 115 virtual PassRefPtr<EncodedFormData> drainAsFormData() { return nullptr; } |
| 127 | 116 |
| 128 // Sets a client. This can be called only when no client is set. When | 117 // Sets a client. This can be called only when no client is set. When |
| 129 // this object is already closed or errored, this function does nothing. | 118 // this object is already closed or errored, this function does nothing. |
| 130 virtual void setClient(Client*) = 0; | 119 virtual void setClient(Client*) = 0; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 return PublicState::Errored; | 167 return PublicState::Errored; |
| 179 } | 168 } |
| 180 NOTREACHED(); | 169 NOTREACHED(); |
| 181 return PublicState::ReadableOrWaiting; | 170 return PublicState::ReadableOrWaiting; |
| 182 } | 171 } |
| 183 }; | 172 }; |
| 184 | 173 |
| 185 } // namespace blink | 174 } // namespace blink |
| 186 | 175 |
| 187 #endif // BytesConsumer_h | 176 #endif // BytesConsumer_h |
| OLD | NEW |