1/*
2 * Copyright 2013, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef STRING_CONSTANTS_H
6#define STRING_CONSTANTS_H
7
8
9#include "AutoPackageAttributes.h"
10	// for the kAutoPackageAttributeNames array size
11#include "String.h"
12
13
14class StringConstants {
15public:
16			// generate the member variable declarations
17			#define DEFINE_STRING_CONSTANT(name, value) \
18				String	name;
19			#define DEFINE_STRING_ARRAY_CONSTANT(name, size, ...) \
20				String	name[size];
21
22			#include "StringConstantsPrivate.h"
23
24			#undef DEFINE_STRING_CONSTANT
25			#undef DEFINE_STRING_ARRAY_CONSTANT
26
27public:
28	static	bool				Init();
29	static	void				Cleanup();
30
31	static	const StringConstants& Get()
32									{ return sDefaultInstance; }
33
34private:
35			bool				_Init();
36
37private:
38	static	StringConstants		sDefaultInstance;
39};
40
41
42#endif	// STRING_CONSTANTS_H
43