Commit 3b7b4c80 authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Merge branch 'amiranda/140-missing-public-interfaces-for-adm_node_t' into 'main'

Resolve "Missing public interfaces for `ADM_node_t`"

Closes #140

See merge request !98
parents 6d673a8e 1759d4ca
Loading
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ typedef struct adm_server* ADM_server_t;
typedef enum {
    ADM_NODE_REGULAR,
    ADM_NODE_ADMINISTRATIVE,
    ADM_NODE_INVALID
} ADM_node_type_t;

/** A node */
@@ -261,6 +262,24 @@ ADM_server_destroy(ADM_server_t server);
ADM_node_t
ADM_node_create(const char* hostname, ADM_node_type_t type);

/**
 * Get the hostname of a node.
 *
 * @param[in] node A valid ADM_node_t
 * @return The hostname of the node.
 */
const char*
ADM_node_get_hostname(ADM_node_t node);

/**
 * Get the type of a node.
 *
 * @param[in] node A valid ADM_node_t
 * @return The type of the node.
 */
ADM_node_type_t
ADM_node_get_type(ADM_node_t node);

/**
 * Destroy a node created by ADM_node_create().
 *
+20 −0
Original line number Diff line number Diff line
@@ -86,6 +86,26 @@ ADM_node_create(const char* hostname, ADM_node_type_t type) {
    return adm_node;
}

const char*
ADM_node_get_hostname(ADM_node_t node) {
    if(!node) {
        LOGGER_ERROR("Invalid ADM_node_t");
        return NULL;
    }

    return node->n_hostname;
}

ADM_node_type_t
ADM_node_get_type(ADM_node_t node) {
    if(!node) {
        LOGGER_ERROR("Invalid ADM_node_t");
        return ADM_NODE_INVALID;
    }

    return node->n_type;
}

ADM_node_t
ADM_node_copy(ADM_node_t dst, const ADM_node_t src) {