OverviewFilesCommitsIssuesDocsReleasesPeers

hyperswarm-peer / swarmd / schema / swarmd_hrpc.h

298 lines · c ref:
// This file is autogenerated by hrpc-c
// !!DO NOT EDIT!!
#ifndef SWARMD_HRPC_H
#define SWARMD_HRPC_H

#include "swarmd_schema.h"
#include "hrpc.h"
#include <rpc.h>
#include <stddef.h>
#include <stdint.h>

enum {
  swarmd_command_hello = 0,
  swarmd_command_status_get = 1,
  swarmd_command_swarm_join = 2,
  swarmd_command_swarm_leave = 3,
  swarmd_command_peer_add = 4,
  swarmd_command_peer_remove = 5,
  swarmd_command_channel_open = 6,
  swarmd_command_channel_close = 7,
  swarmd_command_send = 8,
  swarmd_command_content_hash = 9,
  swarmd_command_content_serve = 10,
  swarmd_command_content_fetch = 11,
  swarmd_command_content_cancel = 12,
  swarmd_command_on_peer_up = 13,
  swarmd_command_on_peer_down = 14,
  swarmd_command_on_message = 15,
  swarmd_command_on_drain = 16,
  swarmd_command_on_status = 17,
  swarmd_command_on_content_progress = 18,
  swarmd_command_on_content_done = 19,
  swarmd_command_on_content_failed = 20,
};

// @swarmd/hello (unary)
int
swarmd_encode_hello (uint64_t id, const swarmd_hello_request_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_hello_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_hello_response (const rpc_message_t *msg, swarmd_hello_response_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_hello) (void *ctx, const swarmd_hello_request_t *req, swarmd_hello_response_t *res, hrpc_error_t *error);

// @swarmd/status-get (unary)
int
swarmd_encode_status_get (uint64_t id, const swarmd_none_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_status_get_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_status_get_response (const rpc_message_t *msg, swarmd_status_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_status_get) (void *ctx, const swarmd_none_t *req, swarmd_status_t *res, hrpc_error_t *error);

// @swarmd/swarm-join (unary)
int
swarmd_encode_swarm_join (uint64_t id, const swarmd_swarm_join_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_swarm_join_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_swarm_join_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_swarm_join) (void *ctx, const swarmd_swarm_join_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/swarm-leave (unary)
int
swarmd_encode_swarm_leave (uint64_t id, const swarmd_topic_ref_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_swarm_leave_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_swarm_leave_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_swarm_leave) (void *ctx, const swarmd_topic_ref_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/peer-add (unary)
int
swarmd_encode_peer_add (uint64_t id, const swarmd_peer_key_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_peer_add_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_peer_add_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_peer_add) (void *ctx, const swarmd_peer_key_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/peer-remove (unary)
int
swarmd_encode_peer_remove (uint64_t id, const swarmd_peer_key_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_peer_remove_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_peer_remove_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_peer_remove) (void *ctx, const swarmd_peer_key_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/channel-open (unary)
int
swarmd_encode_channel_open (uint64_t id, const swarmd_channel_open_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_channel_open_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_channel_open_response (const rpc_message_t *msg, swarmd_channel_ref_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_channel_open) (void *ctx, const swarmd_channel_open_t *req, swarmd_channel_ref_t *res, hrpc_error_t *error);

// @swarmd/channel-close (unary)
int
swarmd_encode_channel_close (uint64_t id, const swarmd_channel_ref_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_channel_close_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_channel_close_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_channel_close) (void *ctx, const swarmd_channel_ref_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/send (unary)
int
swarmd_encode_send (uint64_t id, const swarmd_send_request_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_send_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_send_response (const rpc_message_t *msg, swarmd_send_result_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_send) (void *ctx, const swarmd_send_request_t *req, swarmd_send_result_t *res, hrpc_error_t *error);

// @swarmd/content-hash (unary)
int
swarmd_encode_content_hash (uint64_t id, const swarmd_path_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_content_hash_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_content_hash_response (const rpc_message_t *msg, swarmd_hash_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_content_hash) (void *ctx, const swarmd_path_t *req, swarmd_hash_t *res, hrpc_error_t *error);

// @swarmd/content-serve (unary)
int
swarmd_encode_content_serve (uint64_t id, const swarmd_content_serve_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_content_serve_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_content_serve_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_content_serve) (void *ctx, const swarmd_content_serve_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/content-fetch (unary)
int
swarmd_encode_content_fetch (uint64_t id, const swarmd_content_fetch_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_content_fetch_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_content_fetch_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_content_fetch) (void *ctx, const swarmd_content_fetch_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/content-cancel (unary)
int
swarmd_encode_content_cancel (uint64_t id, const swarmd_content_cancel_t *args, uint8_t **out, size_t *out_len);

int
swarmd_encode_content_cancel_error (uint64_t id, hrpc_error_t error, uint8_t **out, size_t *out_len);

// Returns hrpc_ok (fills *result), hrpc_error_response (fills *error), or < 0.
int
swarmd_decode_content_cancel_response (const rpc_message_t *msg, swarmd_ok_t *result, hrpc_error_t *error);

// Return hrpc_ok after filling *res, or hrpc_error_response after filling *error.
typedef int (*swarmd_on_content_cancel) (void *ctx, const swarmd_content_cancel_t *req, swarmd_ok_t *res, hrpc_error_t *error);

// @swarmd/on-peer-up (event)
int
swarmd_encode_on_peer_up (const swarmd_peer_up_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_peer_up) (void *ctx, const swarmd_peer_up_t *req);

// @swarmd/on-peer-down (event)
int
swarmd_encode_on_peer_down (const swarmd_peer_down_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_peer_down) (void *ctx, const swarmd_peer_down_t *req);

// @swarmd/on-message (event)
int
swarmd_encode_on_message (const swarmd_message_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_message) (void *ctx, const swarmd_message_t *req);

// @swarmd/on-drain (event)
int
swarmd_encode_on_drain (const swarmd_channel_ref_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_drain) (void *ctx, const swarmd_channel_ref_t *req);

// @swarmd/on-status (event)
int
swarmd_encode_on_status (const swarmd_status_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_status) (void *ctx, const swarmd_status_t *req);

// @swarmd/on-content-progress (event)
int
swarmd_encode_on_content_progress (const swarmd_content_progress_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_content_progress) (void *ctx, const swarmd_content_progress_t *req);

// @swarmd/on-content-done (event)
int
swarmd_encode_on_content_done (const swarmd_content_done_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_content_done) (void *ctx, const swarmd_content_done_t *req);

// @swarmd/on-content-failed (event)
int
swarmd_encode_on_content_failed (const swarmd_content_failed_t *args, uint8_t **out, size_t *out_len);

typedef void (*swarmd_on_on_content_failed) (void *ctx, const swarmd_content_failed_t *req);

typedef struct {
  void *ctx;
  swarmd_on_hello on_hello;
  swarmd_on_status_get on_status_get;
  swarmd_on_swarm_join on_swarm_join;
  swarmd_on_swarm_leave on_swarm_leave;
  swarmd_on_peer_add on_peer_add;
  swarmd_on_peer_remove on_peer_remove;
  swarmd_on_channel_open on_channel_open;
  swarmd_on_channel_close on_channel_close;
  swarmd_on_send on_send;
  swarmd_on_content_hash on_content_hash;
  swarmd_on_content_serve on_content_serve;
  swarmd_on_content_fetch on_content_fetch;
  swarmd_on_content_cancel on_content_cancel;
  swarmd_on_on_peer_up on_on_peer_up;
  swarmd_on_on_peer_down on_on_peer_down;
  swarmd_on_on_message on_on_message;
  swarmd_on_on_drain on_on_drain;
  swarmd_on_on_status on_on_status;
  swarmd_on_on_content_progress on_on_content_progress;
  swarmd_on_on_content_done on_on_content_done;
  swarmd_on_on_content_failed on_on_content_failed;
} swarmd_hrpc_handlers_t;

// Dispatch one decoded request. Returns hrpc_dispatch_reply (sets
// *reply_out / *reply_len, caller sends then frees), hrpc_dispatch_no_reply,
// hrpc_dispatch_stream, or < 0 (no reply written).
int
swarmd_hrpc_dispatch (const swarmd_hrpc_handlers_t *handlers, const rpc_message_t *msg, uint8_t **reply_out, size_t *reply_len);

#endif // SWARMD_HRPC_H