Branch data Line data Source code
1 : : // SPDX-License-Identifier: GPL-3.0-or-later
2 : : // SPDX-FileCopyrightText: Andy Holmes <andrew.g.r.holmes@gmail.com>
3 : :
4 : : #pragma once
5 : :
6 : : #if !defined (VALENT_INSIDE) && !defined (VALENT_COMPILATION)
7 : : # error "Only <valent.h> can be included directly."
8 : : #endif
9 : :
10 : : #include <json-glib/json-glib.h>
11 : :
12 : : #include "../core/valent-context.h"
13 : :
14 : : G_BEGIN_DECLS
15 : :
16 : : #define VALENT_TYPE_CHANNEL (valent_channel_get_type())
17 : :
18 : : VALENT_AVAILABLE_IN_1_0
19 [ + - + - : 2775 : G_DECLARE_DERIVABLE_TYPE (ValentChannel, valent_channel, VALENT, CHANNEL, ValentObject)
+ - + - +
- ]
20 : :
21 : : struct _ValentChannelClass
22 : : {
23 : : ValentObjectClass parent_class;
24 : :
25 : : /* virtual functions */
26 : : const char * (*get_verification_key) (ValentChannel *channel);
27 : : GIOStream * (*download) (ValentChannel *channel,
28 : : JsonNode *packet,
29 : : GCancellable *cancellable,
30 : : GError **error);
31 : : void (*download_async) (ValentChannel *channel,
32 : : JsonNode *packet,
33 : : GCancellable *cancellable,
34 : : GAsyncReadyCallback callback,
35 : : gpointer user_data);
36 : : GIOStream * (*download_finish) (ValentChannel *channel,
37 : : GAsyncResult *result,
38 : : GError **error);
39 : : GIOStream * (*upload) (ValentChannel *channel,
40 : : JsonNode *packet,
41 : : GCancellable *cancellable,
42 : : GError **error);
43 : : void (*upload_async) (ValentChannel *channel,
44 : : JsonNode *packet,
45 : : GCancellable *cancellable,
46 : : GAsyncReadyCallback callback,
47 : : gpointer user_data);
48 : : GIOStream * (*upload_finish) (ValentChannel *channel,
49 : : GAsyncResult *result,
50 : : GError **error);
51 : : void (*store_data) (ValentChannel *channel,
52 : : ValentContext *context);
53 : :
54 : : /*< private >*/
55 : : gpointer padding[8];
56 : : };
57 : :
58 : :
59 : : VALENT_AVAILABLE_IN_1_0
60 : : GIOStream * valent_channel_ref_base_stream (ValentChannel *channel);
61 : : VALENT_AVAILABLE_IN_1_0
62 : : JsonNode * valent_channel_get_identity (ValentChannel *channel);
63 : : VALENT_AVAILABLE_IN_1_0
64 : : JsonNode * valent_channel_get_peer_identity (ValentChannel *channel);
65 : : VALENT_AVAILABLE_IN_1_0
66 : : const char * valent_channel_get_verification_key (ValentChannel *channel);
67 : : VALENT_AVAILABLE_IN_1_0
68 : : GIOStream * valent_channel_download (ValentChannel *channel,
69 : : JsonNode *packet,
70 : : GCancellable *cancellable,
71 : : GError **error);
72 : : VALENT_AVAILABLE_IN_1_0
73 : : void valent_channel_download_async (ValentChannel *channel,
74 : : JsonNode *packet,
75 : : GCancellable *cancellable,
76 : : GAsyncReadyCallback callback,
77 : : gpointer user_data);
78 : : VALENT_AVAILABLE_IN_1_0
79 : : GIOStream * valent_channel_download_finish (ValentChannel *channel,
80 : : GAsyncResult *result,
81 : : GError **error);
82 : : VALENT_AVAILABLE_IN_1_0
83 : : GIOStream * valent_channel_upload (ValentChannel *channel,
84 : : JsonNode *packet,
85 : : GCancellable *cancellable,
86 : : GError **error);
87 : : VALENT_AVAILABLE_IN_1_0
88 : : void valent_channel_upload_async (ValentChannel *channel,
89 : : JsonNode *packet,
90 : : GCancellable *cancellable,
91 : : GAsyncReadyCallback callback,
92 : : gpointer user_data);
93 : : VALENT_AVAILABLE_IN_1_0
94 : : GIOStream * valent_channel_upload_finish (ValentChannel *channel,
95 : : GAsyncResult *result,
96 : : GError **error);
97 : : VALENT_AVAILABLE_IN_1_0
98 : : void valent_channel_store_data (ValentChannel *channel,
99 : : ValentContext *context);
100 : : VALENT_AVAILABLE_IN_1_0
101 : : void valent_channel_read_packet (ValentChannel *channel,
102 : : GCancellable *cancellable,
103 : : GAsyncReadyCallback callback,
104 : : gpointer user_data);
105 : : VALENT_AVAILABLE_IN_1_0
106 : : JsonNode * valent_channel_read_packet_finish (ValentChannel *channel,
107 : : GAsyncResult *result,
108 : : GError **error);
109 : : VALENT_AVAILABLE_IN_1_0
110 : : void valent_channel_write_packet (ValentChannel *channel,
111 : : JsonNode *packet,
112 : : GCancellable *cancellable,
113 : : GAsyncReadyCallback callback,
114 : : gpointer user_data);
115 : : VALENT_AVAILABLE_IN_1_0
116 : : gboolean valent_channel_write_packet_finish (ValentChannel *channel,
117 : : GAsyncResult *result,
118 : : GError **error);
119 : : VALENT_AVAILABLE_IN_1_0
120 : : gboolean valent_channel_close (ValentChannel *channel,
121 : : GCancellable *cancellable,
122 : : GError **error);
123 : : VALENT_AVAILABLE_IN_1_0
124 : : void valent_channel_close_async (ValentChannel *channel,
125 : : GCancellable *cancellable,
126 : : GAsyncReadyCallback callback,
127 : : gpointer user_data);
128 : : VALENT_AVAILABLE_IN_1_0
129 : : gboolean valent_channel_close_finish (ValentChannel *channel,
130 : : GAsyncResult *result,
131 : : GError **error);
132 : :
133 : : G_END_DECLS
134 : :
|