PageRenderTime 9ms CodeModel.GetById 1ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/indra/llcommon/metaclasst.h

https://bitbucket.org/lindenlab/viewer-beta/
C++ Header | 60 lines | 26 code | 10 blank | 24 comment | 0 complexity | 3fbb19ee04912a5b791f0f837f18ede9 MD5 | raw file
 1/** 
 2 * @file metaclasst.h
 3 *
 4 * $LicenseInfo:firstyear=2006&license=viewerlgpl$
 5 * Second Life Viewer Source Code
 6 * Copyright (C) 2010, Linden Research, Inc.
 7 * 
 8 * This library is free software; you can redistribute it and/or
 9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation;
11 * version 2.1 of the License only.
12 * 
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 * Lesser General Public License for more details.
17 * 
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21 * 
22 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
23 * $/LicenseInfo$
24 */
25
26#ifndef LL_METACLASST_H
27#define LL_METACLASST_H
28
29#include "metaclass.h"
30
31template<class TObject>
32class LLMetaClassT : public LLMetaClass
33{
34	public:
35		
36		virtual ~LLMetaClassT() {;}
37		
38		static const LLMetaClassT& instance()
39		{
40			static const LLMetaClassT& instance = buildMetaClass();
41			return instance;
42		}
43	
44	private:
45	
46		static const LLMetaClassT& buildMetaClass()
47		{
48			LLMetaClassT& meta_class = *(new LLMetaClassT());
49			reflectProperties(meta_class);
50			return meta_class;
51		}
52	
53		LLMetaClassT() {;}
54	
55		static void reflectProperties(LLMetaClass&)
56		{
57		}
58};
59
60#endif // LL_METACLASST_H