blob: 22a5af89c5b5e6fb8fc482547130cf8dce0464a3 [file] [log] [blame]
// Copyright 2018 The Fuchsia 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 LIB_NETWORK_WRAPPER_NETWORK_WRAPPER_H_
#define LIB_NETWORK_WRAPPER_NETWORK_WRAPPER_H_
#include <fuchsia/net/oldhttp/cpp/fidl.h>
#include <lib/fit/function.h>
#include "lib/callback/cancellable.h"
#include "src/lib/fxl/macros.h"
#include "src/lib/fxl/memory/ref_ptr.h"
namespace network_wrapper {
// Abstraction for the network service. It will reconnect to the network service
// application in case of disconnection, as well as handle 307 and 308
// redirections.
class NetworkWrapper {
public:
NetworkWrapper() {}
virtual ~NetworkWrapper() {}
// Starts a url network request.
virtual fxl::RefPtr<callback::Cancellable> Request(
fit::function<::fuchsia::net::oldhttp::URLRequest()> request_factory,
fit::function<void(::fuchsia::net::oldhttp::URLResponse)> callback) = 0;
private:
FXL_DISALLOW_COPY_AND_ASSIGN(NetworkWrapper);
};
} // namespace network_wrapper
#endif // LIB_NETWORK_WRAPPER_NETWORK_WRAPPER_H_