Updating Xamarin/Microsoft file headers
[platform/upstream/libSkiaSharp.git] / src / c / sk_data.cpp
1 /*
2  * Copyright 2014 Google Inc.
3  * Copyright 2015 Xamarin Inc.
4  * Copyright 2017 Microsoft Corporation. All rights reserved.
5  *
6  * Use of this source code is governed by a BSD-style license that can be
7  * found in the LICENSE file.
8  */
9
10 #include "SkData.h"
11
12 #include "sk_data.h"
13
14 #include "sk_types_priv.h"
15
16 sk_data_t* sk_data_new_from_file(const char* path) {
17     return ToData(SkData::MakeFromFileName(path).release());
18 }
19
20 sk_data_t* sk_data_new_from_stream(sk_stream_t* stream, size_t length) {
21     return ToData(SkData::MakeFromStream(AsStream(stream), length).release());
22 }
23
24 const uint8_t* sk_data_get_bytes(const sk_data_t* cdata) {
25     return AsData(cdata)->bytes();
26 }
27
28 sk_data_t* sk_data_new_empty() {
29     return ToData(SkData::MakeEmpty().release());
30 }
31
32 sk_data_t* sk_data_new_with_copy(const void* src, size_t length) {
33     return ToData(SkData::MakeWithCopy(src, length).release());
34 }
35
36 sk_data_t* sk_data_new_from_malloc(const void* memory, size_t length) {
37     return ToData(SkData::MakeFromMalloc(memory, length).release());
38 }
39
40 sk_data_t* sk_data_new_subset(const sk_data_t* csrc, size_t offset, size_t length) {
41     return ToData(SkData::MakeSubset(AsData(csrc), offset, length).release());
42 }
43
44 sk_data_t* sk_data_new_with_proc(const void* ptr, size_t length, sk_data_release_proc proc, void* ctx) {
45     return ToData(SkData::MakeWithProc(ptr, length, proc, ctx).release());
46 }
47
48 sk_data_t* sk_data_new_uninitialized(size_t size) {
49     return ToData(SkData::MakeUninitialized(size).release());
50 }
51
52 void sk_data_ref(const sk_data_t* cdata) {
53     SkSafeRef(AsData(cdata));
54 }
55
56 void sk_data_unref(const sk_data_t* cdata) {
57     SkSafeUnref(AsData(cdata));
58 }
59
60 size_t sk_data_get_size(const sk_data_t* cdata) {
61     return AsData(cdata)->size();
62 }
63
64 const void* sk_data_get_data(const sk_data_t* cdata) {
65     return AsData(cdata)->data();
66 }