| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_SPEECH_UPSTREAM_LOADER_CLIENT_H_ |
| #define COMPONENTS_SPEECH_UPSTREAM_LOADER_CLIENT_H_ |
| |
| namespace speech { |
| |
| // An interface containing the callback functions required by consumers |
| // of the UpstreamLoader. The class that implements this client |
| // interface must outlive the UpstreamLoader. |
| class UpstreamLoaderClient { |
| public: |
| UpstreamLoaderClient(const UpstreamLoaderClient&) = delete; |
| UpstreamLoaderClient& operator=(const UpstreamLoaderClient&) = delete; |
| |
| protected: |
| UpstreamLoaderClient() = default; |
| virtual ~UpstreamLoaderClient() = default; |
| |
| private: |
| friend class UpstreamLoader; |
| |
| // Executed when upstream data is completed. |
| // success: True on 2xx responses. |
| // response_code: The HTTP response code if available, or -1 on |
| // network errors. |
| virtual void OnUpstreamDataComplete(bool success, int response_code) = 0; |
| }; |
| |
| } // namespace speech |
| |
| #endif // COMPONENTS_SPEECH_UPSTREAM_LOADER_CLIENT_H_ |