Updating Xamarin/Microsoft file headers
[platform/upstream/libSkiaSharp.git] / include / xamarin / sk_managedstream.h
1 /*
2  * Copyright 2015 Xamarin Inc.
3  * Copyright 2017 Microsoft Corporation. All rights reserved.
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8
9 #ifndef sk_managedstream_DEFINED
10 #define sk_managedstream_DEFINED
11
12 #include "sk_xamarin.h"
13
14 #include "sk_types.h"
15
16 SK_C_PLUS_PLUS_BEGIN_GUARD
17
18
19 typedef struct sk_wstream_managedstream_t sk_wstream_managedstream_t;
20
21
22 typedef bool   (*sk_managedwstream_write_delegate)        (sk_wstream_managedstream_t* cmanagedStream, const void* buffer, size_t size);
23 typedef void   (*sk_managedwstream_flush_delegate)        (sk_wstream_managedstream_t* cmanagedStream);
24 typedef size_t (*sk_managedwstream_bytesWritten_delegate) (const sk_wstream_managedstream_t* cmanagedStream);
25 typedef void   (*sk_managedwstream_destroy_delegate)      (size_t cmanagedStream);
26
27
28 SK_X_API sk_wstream_managedstream_t* sk_managedwstream_new (void);
29 SK_X_API void sk_managedwstream_destroy (sk_wstream_managedstream_t*);
30
31 SK_X_API void sk_managedwstream_set_delegates (const sk_managedwstream_write_delegate pWrite,
32                                                const sk_managedwstream_flush_delegate pFlush,
33                                                const sk_managedwstream_bytesWritten_delegate pBytesWritten,
34                                                const sk_managedwstream_destroy_delegate pDestroy);
35
36
37 typedef struct sk_stream_managedstream_t sk_stream_managedstream_t;
38
39
40 typedef size_t                     (*sk_managedstream_read_delegate)         (sk_stream_managedstream_t* cmanagedStream, void* buffer, size_t size);
41 typedef size_t                     (*sk_managedstream_peek_delegate)         (sk_stream_managedstream_t* cmanagedStream, void* buffer, size_t size);
42 typedef bool                       (*sk_managedstream_isAtEnd_delegate)      (const sk_stream_managedstream_t* cmanagedStream);
43 typedef bool                       (*sk_managedstream_hasPosition_delegate)  (const sk_stream_managedstream_t* cmanagedStream);
44 typedef bool                       (*sk_managedstream_hasLength_delegate)    (const sk_stream_managedstream_t* cmanagedStream);
45 typedef bool                       (*sk_managedstream_rewind_delegate)       (sk_stream_managedstream_t* cmanagedStream);
46 typedef size_t                     (*sk_managedstream_getPosition_delegate)  (const sk_stream_managedstream_t* cmanagedStream);
47 typedef bool                       (*sk_managedstream_seek_delegate)         (sk_stream_managedstream_t* cmanagedStream, size_t position);
48 typedef bool                       (*sk_managedstream_move_delegate)         (sk_stream_managedstream_t* cmanagedStream, long offset);
49 typedef size_t                     (*sk_managedstream_getLength_delegate)    (const sk_stream_managedstream_t* cmanagedStream);
50 typedef sk_stream_managedstream_t* (*sk_managedstream_createNew_delegate)    (const sk_stream_managedstream_t* cmanagedStream);
51 typedef void                       (*sk_managedstream_destroy_delegate)      (size_t cmanagedStream);
52
53
54 // c API
55 SK_X_API sk_stream_managedstream_t* sk_managedstream_new (void);
56 SK_X_API void sk_managedstream_destroy (sk_stream_managedstream_t*);
57
58 SK_X_API void sk_managedstream_set_delegates (const sk_managedstream_read_delegate pRead,
59                                               const sk_managedstream_peek_delegate pPeek,
60                                               const sk_managedstream_isAtEnd_delegate pIsAtEnd,
61                                               const sk_managedstream_hasPosition_delegate pHasPosition,
62                                               const sk_managedstream_hasLength_delegate pHasLength,
63                                               const sk_managedstream_rewind_delegate pRewind,
64                                               const sk_managedstream_getPosition_delegate pGetPosition,
65                                               const sk_managedstream_seek_delegate pSeek,
66                                               const sk_managedstream_move_delegate pMove,
67                                               const sk_managedstream_getLength_delegate pGetLength,
68                                               const sk_managedstream_createNew_delegate pCreateNew,
69                                               const sk_managedstream_destroy_delegate pDestroy);
70
71
72 SK_C_PLUS_PLUS_END_GUARD
73
74 #endif