GlobalState.fromReader constructor
GlobalState.fromReader(
- TeleportObjectReader reader
Implementation
factory GlobalState.fromReader(TeleportObjectReader reader) {
final instance = GlobalState();
TeleportField? field;
while ((field = reader.next()) != null) {
if (field!.isNull) continue;
switch (field.fieldId) {
case fieldIdClients: {
final dr = field.asDictionary();
final map = <int, Context>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsInt32()] = Context.fromReader(entry.valueAsField().asObject());
}
instance.clients = map;
break;
}
case fieldIdFunctions: {
final dr = field.asDictionary();
final map = <int, List<ActionFunctionRegister>>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsInt32()] = const [];
}
instance.functions = map;
break;
}
case fieldIdUIStreams: {
final dr = field.asDictionary();
final map = <String, UIStreamState>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsString()] = UIStreamState.fromReader(entry.valueAsField().asObject());
}
instance.uIStreams = map;
break;
}
case fieldIdAudioStreams: {
final dr = field.asDictionary();
final map = <String, AudioStreamState>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsString()] = AudioStreamState.fromReader(entry.valueAsField().asObject());
}
instance.audioStreams = map;
break;
}
case fieldIdVideoStreams: {
final dr = field.asDictionary();
final map = <String, VideoStreamState>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsString()] = VideoStreamState.fromReader(entry.valueAsField().asObject());
}
instance.videoStreams = map;
break;
}
case fieldIdTrackingStreams: {
final dr = field.asDictionary();
final map = <String, TrackingStreamState>{};
TeleportDictEntry? en;
while ((en = dr.next()) != null) {
final entry = en!;
map[entry.keyAsString()] = TrackingStreamState.fromReader(entry.valueAsField().asObject());
}
instance.trackingStreams = map;
break;
}
case fieldIdSpaceId: {
instance.spaceId = field.asString();
break;
}
case fieldIdChannelId: {
instance.channelId = field.asString();
break;
}
case fieldIdServerSessionId: {
instance.serverSessionId = field.asString();
break;
}
case fieldIdSessionHash: {
instance.sessionHash = field.asString();
break;
}
case fieldIdChannelUrl: {
instance.channelUrl = field.asString();
break;
}
case fieldIdSessionChannelUrl: {
instance.sessionChannelUrl = field.asString();
break;
}
case fieldIdFirstUserId: {
instance.firstUserId = field.asString();
break;
}
case fieldIdPrimaryUserId: {
instance.primaryUserId = field.asString();
break;
}
case fieldIdOrganisationName: {
instance.organisationName = field.asString();
break;
}
case fieldIdSpaceName: {
instance.spaceName = field.asString();
break;
}
case fieldIdChannelName: {
instance.channelName = field.asString();
break;
}
case fieldIdServerRunType: {
instance.serverRunType = ServerRunType.fromValue(field.asInt32());
break;
}
case fieldIdAppSourceType: {
instance.appSourceType = AppSourceType.fromValue(field.asInt32());
break;
}
case fieldIdPublicAccess: {
instance.publicAccess = field.asBool();
break;
}
case fieldIdDebugMode: {
instance.debugMode = field.asBool();
break;
}
}
}
return instance;
}