summaryrefslogtreecommitdiff
path: root/chromium/components/speech/downstream_loader_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/speech/downstream_loader_client.h')
-rw-r--r--chromium/components/speech/downstream_loader_client.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/chromium/components/speech/downstream_loader_client.h b/chromium/components/speech/downstream_loader_client.h
new file mode 100644
index 00000000000..3b0e07889b5
--- /dev/null
+++ b/chromium/components/speech/downstream_loader_client.h
@@ -0,0 +1,40 @@
+// 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_DOWNSTREAM_LOADER_CLIENT_H_
+#define COMPONENTS_SPEECH_DOWNSTREAM_LOADER_CLIENT_H_
+
+#include "base/strings/string_piece.h"
+
+namespace speech {
+
+// An interface containing the callback functions required by consumers
+// of the DownstreamLoader. The class that implements this client
+// interface must outlive the DownstreamLoader.
+class DownstreamLoaderClient {
+ public:
+ DownstreamLoaderClient(const DownstreamLoaderClient&) = delete;
+ DownstreamLoaderClient& operator=(const DownstreamLoaderClient&) = delete;
+
+ protected:
+ DownstreamLoaderClient() = default;
+ virtual ~DownstreamLoaderClient() = default;
+
+ private:
+ friend class DownstreamLoader;
+
+ // Executed when downstream data is received.
+ virtual void OnDownstreamDataReceived(
+ base::StringPiece new_response_data) = 0;
+
+ // Executed when downstream data is completed.
+ // success: True on 2xx responses where the entire body was successfully
+ // received. response_code: The HTTP response code if available, or -1 on
+ // network errors.
+ virtual void OnDownstreamDataComplete(bool success, int response_code) = 0;
+};
+
+} // namespace speech
+
+#endif // COMPONENTS_SPEECH_DOWNSTREAM_LOADER_CLIENT_H_