private SystemEvent GetRealEvent()
{
SystemEvent ev;
//idConsole.Warning("TODO: journalling");
// either get an event from the system or the journal file
// TODO: journalling
/*if(com_journal.GetInteger() == 2)
{
r = com_journalFile->Read(&ev, sizeof(ev));
if(r != sizeof(ev))
{
common->FatalError("Error reading from journal file");
}
if(ev.evPtrLength)
{
ev.evPtr = Mem_ClearedAlloc(ev.evPtrLength);
r = com_journalFile->Read(ev.evPtr, ev.evPtrLength);
if(r != ev.evPtrLength)
{
common->FatalError("Error reading from journal file");
}
}
}
else*/
{
// return if we have data
if(_events.Count > 0)
{
return _events.Dequeue();
}
else
{
// return the empty event
ev = new SystemEvent(SystemEventType.None);
}
// write the journal value out if needed
// TODO: journalling
/*if(com_journal.GetInteger() == 1)
{
r = com_journalFile->Write(&ev, sizeof(ev));
if(r != sizeof(ev))
{
common->FatalError("Error writing to journal file");
}
if(ev.evPtrLength)
{
r = com_journalFile->Write(ev.evPtr, ev.evPtrLength);
if(r != ev.evPtrLength)
{
common->FatalError("Error writing to journal file");
}
}
}*/
}
return ev;
}