in AdvLoggerPkg/Application/DecodeUefiLog/DecodeUefiLog.py [0:0]
def _GetNextFormattedLine(self, AccessMessageLineEntry, LoggerInfo):
AccessMessageBlock = {}
AccessMessageBlock["TimeStamp"] = 0
AccessMessageBlock["DebugLevel"] = 0
if AccessMessageLineEntry is None:
AccessMessageLineEntry = {}
AccessMessageLineEntry["Message"] = 0
AccessMessageLineEntry["ResidualLen"] = 0
AccessMessageLineEntry["TimeStamp"] = 0
AccessMessageLineEntry["Message"] = 0
Status = self.SUCCESS
while (Status == self.SUCCESS):
TargetLen = 0
if AccessMessageLineEntry["ResidualLen"] > 0:
LastChar = 0
while (AccessMessageLineEntry["ResidualLen"] > 0 and
(LastChar != '\n') and
(TargetLen < (self.MAX_MESSAGE_SIZE - 2))):
TargetLen = TargetLen + 1
LastChar = AccessMessageLineEntry["ResidualChar"][0]
if AccessMessageLineEntry["ResidualLen"] > 0:
AccessMessageLineEntry["ResidualChar"] = AccessMessageLineEntry["ResidualChar"][1:]
AccessMessageLineEntry["ResidualLen"] -= 1
if AccessMessageLineEntry["Message"] == 0:
AccessMessageLineEntry["Message"] = LastChar
else:
AccessMessageLineEntry["Message"] += LastChar
AccessMessageLineEntry["MessageLen"] = len(AccessMessageLineEntry["Message"])
if LastChar == '\n':
break
if TargetLen >= (self.MAX_MESSAGE_SIZE - 2):
AccessMessageLineEntry["Message"] += '\n'
TargetLen = TargetLen + 1
break
if AccessMessageLineEntry["ResidualLen"] != 0:
Status = self.ABORTED
break
(Status, AccessMessageBlock) = self._GetNextMessageBlock(LoggerInfo)
if Status == self.END_OF_FILE:
if (TargetLen > 0):
Status = self.SUCCESS
break
if Status == self.SUCCESS:
AccessMessageLineEntry["ResidualLen"] = AccessMessageBlock["MessageLen"]
AccessMessageLineEntry["ResidualChar"] = AccessMessageBlock["Message"]
AccessMessageLineEntry["TimeStamp"] = AccessMessageBlock["TimeStamp"]
AccessMessageLineEntry["DebugLevel"] = AccessMessageBlock["DebugLevel"]
return (Status, AccessMessageLineEntry)