Add config component with hostname setting
This commit is contained in:
54
components/config/config.h
Normal file
54
components/config/config.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* Copyright (c) Camden Dixie O'Brien
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#define MAX_HOSTNAME_SIZE 32
|
||||
|
||||
/**
|
||||
* Callback type for consumers of string settings.
|
||||
*/
|
||||
typedef void (*ConfigStringCallback)(const char *value);
|
||||
|
||||
/**
|
||||
* Initialize the configuration module.
|
||||
*
|
||||
* If there is a saved configuration, it will be loaded. Otherwise,
|
||||
* the default configuration will be loaded and saved.
|
||||
*/
|
||||
void config_init();
|
||||
|
||||
/**
|
||||
* Set the device's hostname.
|
||||
*
|
||||
* The argument should be a null-terminated string. If the maximum
|
||||
* length is exceeded, the value will still be used, but will be
|
||||
* truncated.
|
||||
*/
|
||||
void config_set_hostname(const char *hostname);
|
||||
|
||||
/**
|
||||
* Write the device's hostname into the given buffer.
|
||||
*
|
||||
* The length of the hostname is returned. If the value's size exceeds
|
||||
* the size of the buffer, nothing will be written to the buffer but
|
||||
* the length is still returned.
|
||||
*/
|
||||
size_t config_get_hostname(char *buffer, size_t buffer_size);
|
||||
|
||||
/**
|
||||
* Add a callback for hostname updates.
|
||||
*
|
||||
* The function specified in the argument will be invoked whenever a
|
||||
* the hostname is updated, with the new value as its argument. The
|
||||
* lifetime of the passed argument will be static, but the value may
|
||||
* be modified once the callback returns.
|
||||
*/
|
||||
void config_add_hostname_callback(ConfigStringCallback callback);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user