in foreign/csharp/Iggy_SDK/JsonConfiguration/StatsResponseConverter.cs [11:87]
public override StatsResponse? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
using var doc = JsonDocument.ParseValue(ref reader);
var root = doc.RootElement;
int processId = root.GetProperty(nameof(Stats.ProcessId).ToSnakeCase()).GetInt32();
float cpuUsage = root.GetProperty(nameof(Stats.CpuUsage).ToSnakeCase()).GetSingle();
float totalCpuUsage = root.GetProperty(nameof(Stats.TotalCpuUsage).ToSnakeCase()).GetSingle();
string? memoryUsageString = root.GetProperty(nameof(Stats.MemoryUsage).ToSnakeCase()).GetString();
string[] memoryUsageStringSplit = memoryUsageString.Split(' ');
(ulong memoryUsageBytesVal, string memoryUnit) = (ulong.Parse(memoryUsageStringSplit[0]), memoryUsageStringSplit[1]);
ulong memoryUsage = ConvertStringBytesToUlong(memoryUnit, memoryUsageBytesVal);
string? totalMemoryString = root.GetProperty(nameof(Stats.TotalMemory).ToSnakeCase()).GetString();
string[] totalMemoryStringSplit = totalMemoryString.Split(' ');
(ulong totalMemoryUsageBytesVal, string totalMemoryUnit) = (ulong.Parse(totalMemoryStringSplit[0]), totalMemoryStringSplit[1]);
ulong totalMemoryUsage = ConvertStringBytesToUlong(totalMemoryUnit, totalMemoryUsageBytesVal);
string? availableMemoryString = root.GetProperty(nameof(Stats.AvailableMemory).ToSnakeCase()).GetString();
string[] availableMemoryStringSplit = availableMemoryString.Split(' ');
(ulong availableMemoryBytesVal, string availableMemoryUnit) = (ulong.Parse(availableMemoryStringSplit[0]), availableMemoryStringSplit[1]);
ulong availableMemory = ConvertStringBytesToUlong(availableMemoryUnit, availableMemoryBytesVal);
var runtime = root.GetProperty(nameof(Stats.RunTime).ToSnakeCase()).GetUInt64();
ulong startTime = root.GetProperty(nameof(Stats.StartTime).ToSnakeCase()).GetUInt64();
string? readBytesString = root.GetProperty(nameof(Stats.ReadBytes).ToSnakeCase()).GetString();
string[] readBytesStringSplit = readBytesString.Split(' ');
(ulong readBytesVal, string readBytesUnit) = (ulong.Parse(readBytesStringSplit[0]), readBytesStringSplit[1]);
ulong readBytes = ConvertStringBytesToUlong(readBytesUnit, readBytesVal);
string? writtenBytesString = root.GetProperty(nameof(Stats.WrittenBytes).ToSnakeCase()).GetString();
string[] writtenBytesStringSplit = writtenBytesString.Split(' ');
(ulong writtenBytesVal, string writtenBytesUnit) = (ulong.Parse(writtenBytesStringSplit[0]), writtenBytesStringSplit[1]);
ulong writtenBytes = ConvertStringBytesToUlong(writtenBytesUnit, writtenBytesVal);
string? messageWrittenSizeBytesString = root.GetProperty(nameof(Stats.MessagesSizeBytes).ToSnakeCase()).GetString();
string[] messageWrittenSizeBytesStringSplit = messageWrittenSizeBytesString.Split(' ');
(ulong messageWrittenSizeBytesVal, string messageWrittenSizeBytesUnit) = (ulong.Parse(messageWrittenSizeBytesStringSplit[0]), messageWrittenSizeBytesStringSplit[1]);
ulong messageWrittenSizeBytes = ConvertStringBytesToUlong(messageWrittenSizeBytesUnit, messageWrittenSizeBytesVal);
int streamsCount = root.GetProperty(nameof(Stats.StreamsCount).ToSnakeCase()).GetInt32();
int topicsCount = root.GetProperty(nameof(Stats.TopicsCount).ToSnakeCase()).GetInt32();
int partitionsCount = root.GetProperty(nameof(Stats.PartitionsCount).ToSnakeCase()).GetInt32();
int segmentsCount = root.GetProperty(nameof(Stats.SegmentsCount).ToSnakeCase()).GetInt32();
ulong messagesCount = root.GetProperty(nameof(Stats.MessagesCount).ToSnakeCase()).GetUInt64();
int clientsCount = root.GetProperty(nameof(Stats.ClientsCount).ToSnakeCase()).GetInt32();
int consumerGroupsCount = root.GetProperty(nameof(Stats.ConsumerGroupsCount).ToSnakeCase()).GetInt32();
string? hostname = root.GetProperty(nameof(Stats.Hostname).ToSnakeCase()).GetString();
string? osName = root.GetProperty(nameof(Stats.OsName).ToSnakeCase()).GetString();
string? osVersion = root.GetProperty(nameof(Stats.OsVersion).ToSnakeCase()).GetString();
string? kernelVersion = root.GetProperty(nameof(Stats.KernelVersion).ToSnakeCase()).GetString();
return new StatsResponse
{
AvailableMemory = availableMemory,
ClientsCount = clientsCount,
ConsumerGroupsCount = consumerGroupsCount,
CpuUsage = cpuUsage,
Hostname = hostname,
KernelVersion = kernelVersion,
MemoryUsage = memoryUsage,
MessagesCount = messagesCount,
MessagesSizeBytes = messageWrittenSizeBytes,
OsName = osName,
OsVersion = osVersion,
PartitionsCount = partitionsCount,
ProcessId = processId,
ReadBytes = readBytes,
RunTime = runtime,
SegmentsCount = segmentsCount,
StartTime = startTime,
StreamsCount = streamsCount,
TopicsCount = topicsCount,
TotalCpuUsage = totalCpuUsage,
TotalMemory = totalMemoryUsage,
WrittenBytes = writtenBytes
};
}