diff --git a/src/ssb.h b/src/ssb.h index 71fb6871..08470a7a 100644 --- a/src/ssb.h +++ b/src/ssb.h @@ -732,19 +732,86 @@ void tf_ssb_connection_schedule_idle(tf_ssb_connection_t* connection, tf_ssb_sch void tf_ssb_connection_run_work(tf_ssb_connection_t* connection, void (*work_callback)(tf_ssb_connection_t* connection, void* user_data), void (*after_work_callback)(tf_ssb_connection_t* connection, int result, void* user_data), void* user_data); +/** +** Register for new messages on a connection. +** @param connection The SHS connection. +** @param author The author for whom to request new messages. +** @param request_number The MUXRPC request on which to send new messages. +** @param keys Whether to send with keys. +*/ void tf_ssb_connection_add_new_message_request(tf_ssb_connection_t* connection, const char* author, int32_t request_number, bool keys); + +/** +** Remove a request for new messages on a connection. +** @param connection the SHS connection. +** @param author The author for whom to no longer request new messages. +*/ void tf_ssb_connection_remove_new_message_request(tf_ssb_connection_t* connection, const char* author); +/** +** Get whether we are an attendant on a room connection. +** @param connection The SHS connection. +** @return True if this is an attendant connection. +*/ bool tf_ssb_connection_is_attendant(tf_ssb_connection_t* connection); + +/** +** Get the request number used to notify of room attendant changes. +** @param connection the SHS connection. +** @return A request number. +*/ int32_t tf_ssb_connection_get_attendant_request_number(tf_ssb_connection_t* connection); + +/** +** Register for attendant change notifications on a connection. +** @param connection The SHS connection. +** @param attendant Whether this connection will be an attendant. +** @param request_number The request number on which to send attendant changes. +*/ void tf_ssb_connection_set_attendant(tf_ssb_connection_t* connection, bool attendant, int request_number); + +/** +** Clear all attendants from a room. +** @param connection The SHS connection. +*/ void tf_ssb_connection_clear_room_attendants(tf_ssb_connection_t* connection); + +/** +** Add a room attendant. +** @param connection The SHS connection. +** @param id The attendant identifier. +*/ void tf_ssb_connection_add_room_attendant(tf_ssb_connection_t* connection, const char* id); + +/** +** Remove a room attendant. +** @param connection The SHS connection. +** @param id The attendanr identifier. +*/ void tf_ssb_connection_remove_room_attendant(tf_ssb_connection_t* connection, const char* id); +/** +** Create a tunnel. +** @param ssb The SSB instance. +** @param portal_id The identity of the tunnel intermediary. +** @param request_number The tunnel request. +** @param target_id The identity being tunneled to. +** @return The new tunnel connection. +*/ tf_ssb_connection_t* tf_ssb_connection_tunnel_create(tf_ssb_t* ssb, const char* portal_id, int32_t request_number, const char* target_id); +/** +** Get the request number on which to send EBT responses. +** @param connection The SHS connection. +** @return The request number. +*/ int32_t tf_ssb_connection_get_ebt_request_number(tf_ssb_connection_t* connection); + +/** +** Set the request number on which to send EBT responses. +** @param connection The SHS connection. +** @param request_number The request number. +*/ void tf_ssb_connection_set_ebt_request_number(tf_ssb_connection_t* connection, int32_t request_number); /**