conversionhelper.h

来自「The article describes a smart binding of」· C头文件 代码 · 共 50 行

H
50
字号
#ifndef	__Conversion_Helper_H
#define	__Conversion_Helper_H

#include	"Conversion.h"
#include	"Destroyer.h"

#include	<string>
#include	<vector>
using namespace std;

#ifndef	null
#define	null	0
#endif

class	IConversion;

class	ConversionHelper
{
//	Methods
public:
	static ConversionHelper* Instance()
	{
	//	Uses "Lazy initialization"
		if (!instance_)
		{
			instance_ = new ConversionHelper();
			destroyer_.SetObject(instance_);
		}
		return instance_;
	}

	int			ObjectsNumber	()	{ return static_cast<int>(conversionObjects_.size());	}
	void		Add				(IConversion* conversion);
	void		Remove			(IConversion* conversion);
IConversion*	Get				(int index);
IConversion*	Get				(const string& name);
	bool		Exist			(const string& name);

//	Constructor
protected:
	ConversionHelper			() {}

private:
	static	ConversionHelper*			instance_;
	static	Destroyer<ConversionHelper>	destroyer_;
	vector<IConversion*>				conversionObjects_;
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?