12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
- // DO NOT USE -- FOR INTERNAL TESTING ONLY
- #ifndef sk_data_DEFINED
- #define sk_data_DEFINED
- #include "sk_types.h"
- SK_C_PLUS_PLUS_BEGIN_GUARD
- /**
- Returns a new empty sk_data_t. This call must be balanced with a call to
- sk_data_unref().
- */
- SK_API sk_data_t* sk_data_new_empty(void);
- /**
- Returns a new sk_data_t by copying the specified source data.
- This call must be balanced with a call to sk_data_unref().
- */
- SK_API sk_data_t* sk_data_new_with_copy(const void* src, size_t length);
- /**
- Pass ownership of the given memory to a new sk_data_t, which will
- call free() when the refernce count of the data goes to zero. For
- example:
- size_t length = 1024;
- void* buffer = malloc(length);
- memset(buffer, 'X', length);
- sk_data_t* data = sk_data_new_from_malloc(buffer, length);
- This call must be balanced with a call to sk_data_unref().
- */
- SK_API sk_data_t* sk_data_new_from_malloc(const void* memory, size_t length);
- /**
- Returns a new sk_data_t using a subset of the data in the
- specified source sk_data_t. This call must be balanced with a
- call to sk_data_unref().
- */
- SK_API sk_data_t* sk_data_new_subset(const sk_data_t* src, size_t offset, size_t length);
- /**
- Increment the reference count on the given sk_data_t. Must be
- balanced by a call to sk_data_unref().
- */
- SK_API void sk_data_ref(const sk_data_t*);
- /**
- Decrement the reference count. If the reference count is 1 before
- the decrement, then release both the memory holding the sk_data_t
- and the memory it is managing. New sk_data_t are created with a
- reference count of 1.
- */
- SK_API void sk_data_unref(const sk_data_t*);
- /**
- Returns the number of bytes stored.
- */
- SK_API size_t sk_data_get_size(const sk_data_t*);
- /**
- Returns the pointer to the data.
- */
- SK_API const void* sk_data_get_data(const sk_data_t*);
- SK_C_PLUS_PLUS_END_GUARD
- #endif
|