blob: f6053f990fb2f72f3d36f8defe22cd8a38e670a4 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ppapi/cpp/url_request_info.h"
6
7#include "ppapi/cpp/file_ref.h"
8#include "ppapi/cpp/instance_handle.h"
9#include "ppapi/cpp/module.h"
10#include "ppapi/cpp/module_impl.h"
11
12namespace pp {
13
14namespace {
15
16template <> const char* interface_name<PPB_URLRequestInfo_1_0>() {
17 return PPB_URLREQUESTINFO_INTERFACE_1_0;
18}
19
20} // namespace
21
22URLRequestInfo::URLRequestInfo(const InstanceHandle& instance) {
23 if (!has_interface<PPB_URLRequestInfo_1_0>())
24 return;
25 PassRefFromConstructor(
26 get_interface<PPB_URLRequestInfo_1_0>()->Create(instance.pp_instance()));
27}
28
29URLRequestInfo::URLRequestInfo(const URLRequestInfo& other)
30 : Resource(other) {
31}
32
33bool URLRequestInfo::SetProperty(PP_URLRequestProperty property,
34 const Var& value) {
35 if (!has_interface<PPB_URLRequestInfo_1_0>())
36 return false;
37 return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->SetProperty(
38 pp_resource(), property, value.pp_var()));
39}
40
41bool URLRequestInfo::AppendDataToBody(const void* data, uint32_t len) {
42 if (!has_interface<PPB_URLRequestInfo_1_0>())
43 return false;
44 return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendDataToBody(
45 pp_resource(), data, len));
46}
47
48bool URLRequestInfo::AppendFileToBody(const FileRef& file_ref,
49 PP_Time expected_last_modified_time) {
50 if (!has_interface<PPB_URLRequestInfo_1_0>())
51 return false;
52 return PP_ToBool(
53 get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody(
54 pp_resource(),
55 file_ref.pp_resource(),
56 0,
57 -1,
58 expected_last_modified_time));
59}
60
61bool URLRequestInfo::AppendFileRangeToBody(
62 const FileRef& file_ref,
63 int64_t start_offset,
64 int64_t length,
65 PP_Time expected_last_modified_time) {
66 if (!has_interface<PPB_URLRequestInfo_1_0>())
67 return false;
68 return PP_ToBool(get_interface<PPB_URLRequestInfo_1_0>()->AppendFileToBody(
69 pp_resource(),
70 file_ref.pp_resource(),
71 start_offset,
72 length,
73 expected_last_modified_time));
74}
75
76} // namespace pp