/*1* Copyright © 2011 Mozilla Foundation2*3* This program is made available under an ISC-style license. See the4* accompanying file LICENSE for details.5*/67#ifndef CUBEB_STRINGS_H8#define CUBEB_STRINGS_H910#include "cubeb/cubeb.h"1112#if defined(__cplusplus)13extern "C" {14#endif1516/** Opaque handle referencing interned string storage. */17typedef struct cubeb_strings cubeb_strings;1819/** Initialize an interned string structure.20@param strings An out param where an opaque pointer to the21interned string storage will be returned.22@retval CUBEB_OK in case of success.23@retval CUBEB_ERROR in case of error. */24CUBEB_EXPORT int25cubeb_strings_init(cubeb_strings ** strings);2627/** Destroy an interned string structure freeing all associated memory.28@param strings An opaque pointer to the interned string storage to29destroy. */30CUBEB_EXPORT void31cubeb_strings_destroy(cubeb_strings * strings);3233/** Add string to internal storage.34@param strings Opaque pointer to interned string storage.35@param s String to add to storage.36@retval CUBEB_OK37@retval CUBEB_ERROR38*/39CUBEB_EXPORT char const *40cubeb_strings_intern(cubeb_strings * strings, char const * s);4142#if defined(__cplusplus)43}44#endif4546#endif // !CUBEB_STRINGS_H474849