Index: include/c/sk_data.h |
diff --git a/include/c/sk_data.h b/include/c/sk_data.h |
index 95b7f5eb0ba7ee5782f7c98b265d0ce3ac82ea66..90333bba5f7710bd4958cff22440331885aa2d2c 100644 |
--- a/include/c/sk_data.h |
+++ b/include/c/sk_data.h |
@@ -15,15 +15,54 @@ |
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(); |
+/** |
+ 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 |