⛏️ index : haiku.git

/*
 * Copyright 2013, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Distributed under the terms of the MIT License.
 */
#ifndef STRING_CONSTANTS_H
#define STRING_CONSTANTS_H


#include "AutoPackageAttributes.h"
	// for the kAutoPackageAttributeNames array size
#include "String.h"


class StringConstants {
public:
			// generate the member variable declarations
			#define DEFINE_STRING_CONSTANT(name, value) \
				String	name;
			#define DEFINE_STRING_ARRAY_CONSTANT(name, size, ...) \
				String	name[size];

			#include "StringConstantsPrivate.h"

			#undef DEFINE_STRING_CONSTANT
			#undef DEFINE_STRING_ARRAY_CONSTANT

public:
	static	bool				Init();
	static	void				Cleanup();

	static	const StringConstants& Get()
									{ return sDefaultInstance; }

private:
			bool				_Init();

private:
	static	StringConstants		sDefaultInstance;
};


#endif	// STRING_CONSTANTS_H