2020-12-28 19:15:37 +04:00
|
|
|
/*
|
|
|
|
* Copyright © 2011 Mozilla Foundation
|
|
|
|
*
|
|
|
|
* This program is made available under an ISC-style license. See the
|
|
|
|
* accompanying file LICENSE for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CUBEB_STRINGS_H
|
|
|
|
#define CUBEB_STRINGS_H
|
|
|
|
|
|
|
|
#include "cubeb/cubeb.h"
|
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/** Opaque handle referencing interned string storage. */
|
|
|
|
typedef struct cubeb_strings cubeb_strings;
|
|
|
|
|
|
|
|
/** Initialize an interned string structure.
|
|
|
|
@param strings An out param where an opaque pointer to the
|
|
|
|
interned string storage will be returned.
|
|
|
|
@retval CUBEB_OK in case of success.
|
|
|
|
@retval CUBEB_ERROR in case of error. */
|
2021-12-08 10:33:31 +04:00
|
|
|
CUBEB_EXPORT int
|
|
|
|
cubeb_strings_init(cubeb_strings ** strings);
|
2020-12-28 19:15:37 +04:00
|
|
|
|
|
|
|
/** Destroy an interned string structure freeing all associated memory.
|
|
|
|
@param strings An opaque pointer to the interned string storage to
|
|
|
|
destroy. */
|
2021-12-08 10:33:31 +04:00
|
|
|
CUBEB_EXPORT void
|
|
|
|
cubeb_strings_destroy(cubeb_strings * strings);
|
2020-12-28 19:15:37 +04:00
|
|
|
|
|
|
|
/** Add string to internal storage.
|
|
|
|
@param strings Opaque pointer to interned string storage.
|
|
|
|
@param s String to add to storage.
|
|
|
|
@retval CUBEB_OK
|
|
|
|
@retval CUBEB_ERROR
|
|
|
|
*/
|
2021-12-08 10:33:31 +04:00
|
|
|
CUBEB_EXPORT char const *
|
|
|
|
cubeb_strings_intern(cubeb_strings * strings, char const * s);
|
2020-12-28 19:15:37 +04:00
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // !CUBEB_STRINGS_H
|