1/*
2 * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved.
3 *
4 * NVIDIA CORPORATION and its licensors retain all intellectual property
5 * and proprietary rights in and to this software, related documentation
6 * and any modifications thereto. Any use, reproduction, disclosure or
7 * distribution of this software and related documentation without an express
8 * license agreement from NVIDIA CORPORATION is strictly prohibited.
9 */
10// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
11// Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
12
13
14#ifndef PX_STRING_TABLE_H
15#define PX_STRING_TABLE_H
16
17
18/** \addtogroup physics
19@{
20*/
21
22#ifndef PX_DOXYGEN
23namespace physx
24{
25#endif
26
27/**
28 * \brief a table to manage strings. Strings allocated through this object are expected to be owned by this object.
29 */
30class PxStringTable
31{
32protected:
33 virtual ~PxStringTable(){}
34public:
35 /**
36 * \brief Allocate a new string.
37 *
38 * \param[in] inSrc Source string, null terminated or null.
39 *
40 * \return *Always* a valid null terminated string. "" is returned if "" or null is passed in.
41 */
42 virtual const char* allocateStr( const char* inSrc ) = 0;
43
44 /**
45 * Release the string table and all the strings associated with it.
46 */
47 virtual void release() = 0;
48};
49
50#ifndef PX_DOXYGEN
51} // namespace physx
52#endif
53
54/** @} */
55#endif
56