| // Copyright (c) 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. | 
 |  | 
 | #include "ppapi/cpp/url_request_info.h" | 
 |  | 
 | #include "ppapi/cpp/file_ref.h" | 
 | #include "ppapi/cpp/instance_handle.h" | 
 | #include "ppapi/cpp/module.h" | 
 | #include "ppapi/cpp/module_impl.h" | 
 |  | 
 | namespace pp { | 
 |  | 
 | namespace { | 
 |  | 
 | template <> const char* interface_name<PPB_URLRequestInfo_1_0>() { | 
 |   return PPB_URLREQUESTINFO_INTERFACE_1_0; | 
 | } | 
 |  | 
 | }  // namespace | 
 |  | 
 | URLRequestInfo::URLRequestInfo(const InstanceHandle& instance) { | 
 |   if (!has_interface<PPB_URLRequestInfo_1_0>()) | 
 |     return; | 
 |   PassRefFromConstructor( | 
 |       get_interface<PPB_URLRequestInfo_1_0>()->Create(instance.pp_instance())); | 
 | } | 
 |  | 
 | URLRequestInfo::URLRequestInfo(const URLRequestInfo& other) | 
 |     : Resource(other) { | 
 | } | 
 |  | 
 | bool URLRequestInfo::SetProperty(PP_URLRequestProperty property, | 
 |                                  const Var& value) { | 
 |   if (!has_interface<PPB_URLRequestInfo_1_0>()) | 
 |     return false; | 
 |   return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->SetProperty( | 
 |       pp_resource(), property, value.pp_var())); | 
 | } | 
 |  | 
 | bool URLRequestInfo::AppendDataToBody(const void* data, uint32_t len) { | 
 |   if (!has_interface<PPB_URLRequestInfo_1_0>()) | 
 |     return false; | 
 |   return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendDataToBody( | 
 |       pp_resource(), data, len)); | 
 | } | 
 |  | 
 | bool URLRequestInfo::AppendFileToBody(const FileRef& file_ref, | 
 |                                       PP_Time expected_last_modified_time) { | 
 |   if (!has_interface<PPB_URLRequestInfo_1_0>()) | 
 |     return false; | 
 |   return PP_ToBool( | 
 |       get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody( | 
 |           pp_resource(), | 
 |           file_ref.pp_resource(), | 
 |           0, | 
 |           -1, | 
 |           expected_last_modified_time)); | 
 | } | 
 |  | 
 | bool URLRequestInfo::AppendFileRangeToBody( | 
 |     const FileRef& file_ref, | 
 |     int64_t start_offset, | 
 |     int64_t length, | 
 |     PP_Time expected_last_modified_time) { | 
 |   if (!has_interface<PPB_URLRequestInfo_1_0>()) | 
 |     return false; | 
 |   return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody( | 
 |       pp_resource(), | 
 |       file_ref.pp_resource(), | 
 |       start_offset, | 
 |       length, | 
 |       expected_last_modified_time)); | 
 | } | 
 |  | 
 | }  // namespace pp |