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 [ + + + - : 2896 : G_DECLARE_DERIVABLE_TYPE (ValentChannel, valent_channel, VALENT, CHANNEL, ValentObject)
+ - + - ]
20 : :
21 : : struct _ValentChannelClass
22 : : {
23 : : ValentObjectClass parent_class;
24 : :
25 : : /* virtual functions */
26 : : GIOStream * (*download) (ValentChannel *channel,
27 : : JsonNode *packet,
28 : : GCancellable *cancellable,
29 : : GError **error);
30 : : void (*download_async) (ValentChannel *channel,
31 : : JsonNode *packet,
32 : : GCancellable *cancellable,
33 : : GAsyncReadyCallback callback,
34 : : gpointer user_data);
35 : : GIOStream * (*download_finish) (ValentChannel *channel,
36 : : GAsyncResult *result,
37 : : GError **error);
38 : : GIOStream * (*upload) (ValentChannel *channel,
39 : : JsonNode *packet,
40 : : GCancellable *cancellable,
41 : : GError **error);
42 : : void (*upload_async) (ValentChannel *channel,
43 : : JsonNode *packet,
44 : : GCancellable *cancellable,
45 : : GAsyncReadyCallback callback,
46 : : gpointer user_data);
47 : : GIOStream * (*upload_finish) (ValentChannel *channel,
48 : : GAsyncResult *result,
49 : : GError **error);
50 : :
51 : : /*< private >*/
52 : : gpointer padding[8];
53 : : };
54 : :
55 : :
56 : : VALENT_AVAILABLE_IN_1_0
57 : : GIOStream * valent_channel_ref_base_stream (ValentChannel *channel);
58 : : VALENT_AVAILABLE_IN_1_0
59 : : GTlsCertificate * valent_channel_ref_certificate (ValentChannel *channel);
60 : : VALENT_AVAILABLE_IN_1_0
61 : : JsonNode * valent_channel_get_identity (ValentChannel *channel);
62 : : VALENT_AVAILABLE_IN_1_0
63 : : GTlsCertificate * valent_channel_ref_peer_certificate (ValentChannel *channel);
64 : : VALENT_AVAILABLE_IN_1_0
65 : : JsonNode * valent_channel_get_peer_identity (ValentChannel *channel);
66 : : VALENT_AVAILABLE_IN_1_0
67 : : GIOStream * valent_channel_download (ValentChannel *channel,
68 : : JsonNode *packet,
69 : : GCancellable *cancellable,
70 : : GError **error);
71 : : VALENT_AVAILABLE_IN_1_0
72 : : void valent_channel_download_async (ValentChannel *channel,
73 : : JsonNode *packet,
74 : : GCancellable *cancellable,
75 : : GAsyncReadyCallback callback,
76 : : gpointer user_data);
77 : : VALENT_AVAILABLE_IN_1_0
78 : : GIOStream * valent_channel_download_finish (ValentChannel *channel,
79 : : GAsyncResult *result,
80 : : GError **error);
81 : : VALENT_AVAILABLE_IN_1_0
82 : : GIOStream * valent_channel_upload (ValentChannel *channel,
83 : : JsonNode *packet,
84 : : GCancellable *cancellable,
85 : : GError **error);
86 : : VALENT_AVAILABLE_IN_1_0
87 : : void valent_channel_upload_async (ValentChannel *channel,
88 : : JsonNode *packet,
89 : : GCancellable *cancellable,
90 : : GAsyncReadyCallback callback,
91 : : gpointer user_data);
92 : : VALENT_AVAILABLE_IN_1_0
93 : : GIOStream * valent_channel_upload_finish (ValentChannel *channel,
94 : : GAsyncResult *result,
95 : : GError **error);
96 : : VALENT_AVAILABLE_IN_1_0
97 : : void valent_channel_read_packet (ValentChannel *channel,
98 : : GCancellable *cancellable,
99 : : GAsyncReadyCallback callback,
100 : : gpointer user_data);
101 : : VALENT_AVAILABLE_IN_1_0
102 : : JsonNode * valent_channel_read_packet_finish (ValentChannel *channel,
103 : : GAsyncResult *result,
104 : : GError **error);
105 : : VALENT_AVAILABLE_IN_1_0
106 : : void valent_channel_write_packet (ValentChannel *channel,
107 : : JsonNode *packet,
108 : : GCancellable *cancellable,
109 : : GAsyncReadyCallback callback,
110 : : gpointer user_data);
111 : : VALENT_AVAILABLE_IN_1_0
112 : : gboolean valent_channel_write_packet_finish (ValentChannel *channel,
113 : : GAsyncResult *result,
114 : : GError **error);
115 : : VALENT_AVAILABLE_IN_1_0
116 : : gboolean valent_channel_close (ValentChannel *channel,
117 : : GCancellable *cancellable,
118 : : GError **error);
119 : : VALENT_AVAILABLE_IN_1_0
120 : : void valent_channel_close_async (ValentChannel *channel,
121 : : GCancellable *cancellable,
122 : : GAsyncReadyCallback callback,
123 : : gpointer user_data);
124 : : VALENT_AVAILABLE_IN_1_0
125 : : gboolean valent_channel_close_finish (ValentChannel *channel,
126 : : GAsyncResult *result,
127 : : GError **error);
128 : :
129 : : G_END_DECLS
130 : :
|