// 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_