2022-01-20 18:27:56 +00:00
|
|
|
// This file Copyright 2016-2022 Mnemosyne LLC.
|
|
|
|
// It may be used under GPLv2 (SPDX: GPL-2.0), GPLv3 (SPDX: GPL-3.0),
|
|
|
|
// or any future license endorsed by Mnemosyne LLC.
|
|
|
|
// License text can be found in the licenses/ folder.
|
2016-09-05 19:06:26 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2021-10-06 14:26:07 +00:00
|
|
|
using tr_session_id_t = struct tr_session_id*;
|
2016-09-05 19:06:26 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Create new session identifier object.
|
|
|
|
*
|
|
|
|
* @return New session identifier object.
|
|
|
|
*/
|
2017-04-19 12:04:45 +00:00
|
|
|
tr_session_id_t tr_session_id_new(void);
|
2016-09-05 19:06:26 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Free session identifier object.
|
|
|
|
*
|
|
|
|
* @param[in] session_id Session identifier object.
|
|
|
|
*/
|
2017-04-19 12:04:45 +00:00
|
|
|
void tr_session_id_free(tr_session_id_t session_id);
|
2016-09-05 19:06:26 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get current session identifier as string.
|
|
|
|
*
|
|
|
|
* @param[in] session_id Session identifier object.
|
|
|
|
*
|
|
|
|
* @return String representation of current session identifier.
|
|
|
|
*/
|
2017-04-20 16:02:19 +00:00
|
|
|
char const* tr_session_id_get_current(tr_session_id_t session_id);
|
2016-09-05 19:06:26 +00:00
|
|
|
|
2016-09-21 20:56:03 +00:00
|
|
|
/**
|
|
|
|
* Check if session ID corresponds to session running on the same machine as
|
|
|
|
* the caller.
|
|
|
|
*
|
|
|
|
* This is useful for various behavior alterations, such as transforming
|
|
|
|
* relative paths to absolute before passing through RPC, or presenting
|
|
|
|
* different UI for local and remote sessions.
|
|
|
|
*
|
|
|
|
* @param[in] session_id String representation of session identifier object.
|
|
|
|
*
|
|
|
|
* @return `True` if session is valid and local, `false` otherwise.
|
|
|
|
*/
|
2017-04-20 16:02:19 +00:00
|
|
|
bool tr_session_id_is_local(char const* session_id);
|