#ifndef __SSB_SCUTTLER_H__ # define __SSB_SCUTTLER_H__ # include # include # define SSB_TYPE_SCUTTLER ssb_scuttler_get_type() G_DECLARE_FINAL_TYPE(SsbScuttler, ssb_scuttler, SSB, SCUTTLER, GInitiallyUnowned) typedef enum { SSB_SCUTTLER_ERROR_KEYGEN, SSB_SCUTTLER_ERROR_KEYAUTH, SSB_SCUTTLER_ERROR_KEYVERIFY, SSB_SCUTTLER_ERROR_AUTH, SSB_SCUTTLER_ERROR_REQUEST_TOO_LARGE, SSB_SCUTTLER_ERROR_SEND, SSB_SCUTTLER_ERROR_NOTCONNECTED, SSB_SCUTTLER_ERROR_READ, SSB_SCUTTLER_ERROR_CRYPTO, SSB_SCUTTLER_ERROR_RESPONSE_TOO_LARGE, SSB_SCUTTLER_ERROR_STREAM_END, SSB_SCUTTLER_ERROR_CONFIG_ERROR, } SsbScuttlerError; G_BEGIN_DECLS gpointer scuttle(gchar *ssb_dir); void stop_scuttling(void); # define SSB_SCUTTLER_ERROR (ssb_scuttler_error_quark()) GQuark ssb_scuttler_error_quark(void); gboolean ssb_scuttler_ensure(const gchar *ssb_dir); SsbScuttler *ssb_scuttler_get(void); void ssb_scuttler_connect_async(SsbScuttler *scuttler, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); gboolean ssb_scuttler_connect_finish(SsbScuttler *scuttler, GAsyncResult *result, GError **error); void ssb_scuttler_whoami_async(SsbScuttler *scuttler, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); G_END_DECLS #endif /* __SSB_SCUTTLER_H__ */