X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fttt-server.h;h=80f22bf25b0ffa9ce1884931e59524966fcc5a27;hb=df6ad6c8658a9f3a537a070a89a067c5ae598fcc;hp=7cf3d9707ecc95aec9bbfa8e02dc8a20ea9d1137;hpb=84db9bf52aa25c19f7d547ea2dbec69ca4452300;p=ttt diff --git a/src/ttt-server.h b/src/ttt-server.h index 7cf3d97..80f22bf 100644 --- a/src/ttt-server.h +++ b/src/ttt-server.h @@ -59,6 +59,81 @@ ttt_server_unregister_client (ttt_server_t *server, ttt_client_t *client); void ttt_server_broadcast (ttt_server_t *server, const char *message); + +/* Returns the WHO response. The return string is allocated in this + * function and will need to be free'd by the caller. + * + * Locking: The server mutex will be acquired and held throughout the + * execution of this function. Each client mutex may also be acquired + * and held by functions called during the execution of this function. + * + * Errors: If an error such as an IO error occurs, this function will + * not return. + */ +const char* +ttt_server_who (ttt_server_t *server); + +/* Checks to see whether a username exists. + * + * Returns: ttt_server_get_client_from_username(server, username) + * + * Locking: See ttt_server_get_client_from_username + * + * Errors: See ttt_server_get_client_from_username + */ +ttt_error_t +ttt_server_verify_username (ttt_server_t *server, + const char *username); + +/* Points *client to the client with the supplied username, else + * leaves *client unhanged. + * + * Returns: TTT_ERROR_NONE, else TTT_ERROR_NO_USER if username not + * found. + * + * Locking: The server mutex will be acquired and held throughout the + * execution of this function. Each client mutex may also be acquired + * and held by functions called during the execution of this function. + * + * Errors: If an error such as an IO error occurs, this function will + * not return. + */ +ttt_error_t +ttt_server_get_client_from_username (ttt_server_t *server, + const char *username, + ttt_client_t **client); + +/* Adds an invitation + * + * Locking: The server mutex will be acquired and held throughout the + * execution of this function. Each client mutex may also be acquired + * and held by functions called during the execution of this function. + * + * Errors: If an error such as an IO error occurs, this function will + * not return. + */ +ttt_error_t +ttt_server_add_invite (ttt_server_t *server, + ttt_client_t *actor, + ttt_client_t *invitee); + +/* Removes an invitation + * + * Returns: TTT_ERROR_NONE, else TTT_ERROR_NO_INVITE if no invite + * found. + * + * Locking: The server mutex will be acquired and held throughout the + * execution of this function. Each client mutex may also be acquired + * and held by functions called during the execution of this function. + * + * Errors: If an error such as an IO error occurs, this function will + * not return. + */ +ttt_error_t +ttt_server_remove_invite (ttt_server_t *server, + ttt_client_t *actor, + ttt_client_t *invitee); + /* Gets the server hostname. * */