// Copyright 2012 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 IOS_NET_PROTOCOL_HANDLER_UTIL_H_
#define IOS_NET_PROTOCOL_HANDLER_UTIL_H_

#import <Foundation/Foundation.h>

namespace base {
class Time;
}  // namespace base

namespace net {
class URLRequest;
}  // namespace net

namespace net {

// Creates a network NSError. |ns_error_code| is the iOS error code,
// |net_error_code| is the network error from net/base/net_error_list.h.
// |creation_time| is the time when the failing request was started and must be
// valid.
NSError* GetIOSError(NSInteger ns_error_code,
                     int net_error_code,
                     NSString* url,
                     const base::Time& creation_time);

// Builds a NSURLResponse from the response data in |request|.
NSURLResponse* GetNSURLResponseForRequest(URLRequest* request);

// Copy HTTP headers from |in_request| to |out_request|.
void CopyHttpHeaders(NSURLRequest* in_request, URLRequest* out_request);

}  // namespace protocol_handler_util

#endif  // IOS_NET_PROTOCOL_HANDLER_UTIL_H_
