This commit is contained in:
FlightControl
2017-06-08 15:44:35 +02:00
parent 18885f0450
commit e17de754a3
7 changed files with 58 additions and 89 deletions

View File

@@ -84,11 +84,6 @@ function SET_BASE:New( Database )
self.TimeInterval = 0.001
self.Set = {}
self.List = {}
self.List.__index = self.List
self.List = setmetatable( { Count = 0 }, self.List )
self.Index = {}
self.CallScheduler = SCHEDULER:New( self )
@@ -126,24 +121,8 @@ end
function SET_BASE:Add( ObjectName, Object )
self:F( ObjectName )
local t = { _ = Object }
if self.List.last then
self.List.last._next = t
t._prev = self.List.last
self.List.last = t
else
-- this is the first node
self.List.first = t
self.List.last = t
end
self.List.Count = self.List.Count + 1
self.Set[ObjectName] = Object
table.insert( self.Index, ObjectName )
end
--- Adds a @{Base#BASE} object in the @{Set#SET_BASE}, using the Object Name as the index.
@@ -166,43 +145,19 @@ end
-- @param #string ObjectName
function SET_BASE:Remove( ObjectName )
local t = self.Set[ObjectName]
local Object = self.Set[ObjectName]
self:F3( { ObjectName, t } )
self:F3( { ObjectName, Object } )
if t then
if t._next then
if t._prev then
t._next._prev = t._prev
t._prev._next = t._next
else
-- this was the first node
t._next._prev = nil
self.List._first = t._next
end
elseif t._prev then
-- this was the last node
t._prev._next = nil
self.List._last = t._prev
else
-- this was the only node
self.List._first = nil
self.List._last = nil
end
t._next = nil
t._prev = nil
self.List.Count = self.List.Count - 1
if Object then
for Index, Key in ipairs( self.Index ) do
if Key == ObjectName then
table.remove( self.Index, Index )
self.Set[ObjectName] = nil
break
end
end
self.Set[ObjectName] = nil
end
end
@@ -214,12 +169,10 @@ end
function SET_BASE:Get( ObjectName )
self:F( ObjectName )
local t = self.Set[ObjectName]
self:T3( { ObjectName, t } )
return t
local Object = self.Set[ObjectName]
self:T3( { ObjectName, Object } )
return Object
end
--- Gets the first object from the @{Set#SET_BASE} and derived classes.
@@ -260,7 +213,7 @@ end
-- @return #number Count
function SET_BASE:Count()
return #self.Index or 0
return self.Index and #self.Index or 0
end