Files
bacnet_stack/src/bacnet/indtext.h
T
Steve Karg 1375347ab6 Added bacnet_strnlen and bacnet_stricmp to avoid libc compiler problems (#857)
* Added bacnet_strnlen and bacnet_stricmp to avoid libc compiler problems

* FIxed compiler warnings in printf conversions.
2024-11-21 06:43:37 -06:00

77 lines
2.5 KiB
C

/**
* @file
* @brief API for index and text pairs lookup functions
* @author Steve Karg <skarg@users.sourceforge.net>
* @date 2012
* @copyright SPDX-License-Identifier: MIT
*/
#ifndef BACNET_INDEX_TEXT_H
#define BACNET_INDEX_TEXT_H
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
/* BACnet Stack defines - first */
#include "bacnet/bacdef.h"
/* index and text pairs */
typedef const struct {
const unsigned index; /* index number that matches the text */
const char *pString; /* text pair - use NULL to end the list */
} INDTEXT_DATA;
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Searches for a matching string and returns the index to the string
in the parameter found_index.
If the string is not found, false is returned
If the string is found, true is returned and the found_index contains
the first index where the string was found. */
BACNET_STACK_EXPORT
bool indtext_by_string(
INDTEXT_DATA *data_list, const char *search_name, unsigned *found_index);
/* case insensitive version */
BACNET_STACK_EXPORT
bool indtext_by_istring(
INDTEXT_DATA *data_list, const char *search_name, unsigned *found_index);
/* Searches for a matching string and returns the index to the string
or the default_index if the string is not found. */
BACNET_STACK_EXPORT
unsigned indtext_by_string_default(
INDTEXT_DATA *data_list, const char *search_name, unsigned default_index);
/* case insensitive version */
BACNET_STACK_EXPORT
unsigned indtext_by_istring_default(
INDTEXT_DATA *data_list, const char *search_name, unsigned default_index);
/* for a given index, return the matching string,
or NULL if not found */
BACNET_STACK_EXPORT
const char *indtext_by_index(INDTEXT_DATA *data_list, unsigned index);
/* for a given index, return the matching string,
or default_name if not found */
BACNET_STACK_EXPORT
const char *indtext_by_index_default(
INDTEXT_DATA *data_list, unsigned index, const char *default_name);
/* for a given index, return the matching string,
or default_name if not found.
if the index is before the split,
the before_split_default_name is used */
BACNET_STACK_EXPORT
const char *indtext_by_index_split_default(
INDTEXT_DATA *data_list,
unsigned index,
unsigned split_index,
const char *before_split_default_name,
const char *default_name);
/* returns the number of elements in the list */
BACNET_STACK_EXPORT
unsigned indtext_count(INDTEXT_DATA *data_list);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif