I'm a doctor, not a mechanic
Legacy:SessionMaster
From Unreal Wiki, The Unreal Engine Documentation Site
-
//-----------------------------------------------------------
-
// Ladder.SessionMaster
-
// Sessions concept by El_Muerte[TDS]
-
// http://wiki.beyondunreal.com/wiki/Sessions
-
//
-
// Controls and tracks all Session objects for use by webadmin
-
//-----------------------------------------------------------
-
class SessionMaster extends Object transient;
-
-
var array<Session> Sessions;
-
-
// get a session by it's hash
-
function Session getSession(string hash, optional bool bCreateNew)
-
{
-
local int i;
-
-
for (i = 0; i < sessions.length; i++) if (Sessions[i].GetHash() == hash) return Sessions[i];
-
if (bCreateNew) return createSession();
-
return none;
-
}
-
-
// destroy an existing session
-
function bool destroySession(Session session)
-
{
-
local int i;
-
local string Hash;
-
-
Hash = Session.GetHash();
-
for (i = 0; i < sessions.length; i++)
-
if (Sessions[i].GetHash() == Hash)
-
{
-
-
Sessions.Remove(i, 1);
-
return true;
-
}
-
-
return false;
-
}
-
-
// create a new session
-
private function Session createSession()
-
{
-
local Session TempS;
-
-
TempS = new class'Session';
-
if (TempS.SetHash(CreateSessionHash())) Sessions[Sessions.Length] = TempS;
-
-
return TempS;
-
}
-
-
// create a unique session hash
-
function string createSessionHash()
-
{
-
local int i;
-
local string temphash;
-
-
do {
-
temphash = Right("00000"$string(Rand(65536)), 5)$Right("00000"$string(Rand(65536)), 5);
-
for (i = 0; i < sessions.length; i++)
-
if (Sessions[i].GetHash() == temphash) break;
-
} until (i == sessions.length);
-
return temphash;
-
}