Singleton
From Multi Theft Auto: Wiki
(Redirected from CSingleton)
This class allows you to restrict the instantiation of a specific class to one object.
Requirements
sbx320's classLib, can be found Here[1]
OOP on
Code
Singleton = {}
function Singleton:getSingleton(...)
	if not self.ms_Instance then
		self.ms_Instance = self:new(...)
	end
	return self.ms_Instance
end
function Singleton:new(...)
	self.new = function() end
	local inst = new(self, ...)
	self.ms_Instance = inst
	return inst
end
function Singleton:isInstantiated()
	return self.ms_Instance ~= nil
end
function Singleton:virtual_destructor()
	for k, v in pairs(super(self)) do
		v.ms_Instance = nil
		v.new = Singleton.new
	end
end
Call class methods by newest instance
Example
-- DEFINE CLASS TestClass = inherit(Singleton) function TestClass:run() -- DO SOMETHING end TestClass:getSingleton():run()

