decodeLazyPayloadView function
MaterializedPayloadView
decodeLazyPayloadView(
- LazyMessagePayload payload, {
- String? pptScheme,
- String? pptSerializer,
- String? pptCipher,
- String? pptKeyId,
- WampE2eeProvider? e2eeProvider,
- WampE2eeRuntimeContext? runtimeContext,
Implementation
MaterializedPayloadView decodeLazyPayloadView(
LazyMessagePayload payload, {
String? pptScheme,
String? pptSerializer,
String? pptCipher,
String? pptKeyId,
WampE2eeProvider? e2eeProvider,
WampE2eeRuntimeContext? runtimeContext,
}) {
if (payload.pptDecoded) {
return (
arguments: payload.arguments,
argumentsKeywords: payload.argumentsKeywords,
);
}
final resolvedE2eeProvider = e2eeProvider ?? payload.e2eeProvider;
final resolvedRuntimeContext = runtimeContext ?? payload.e2eeRuntimeContext;
final runtimePayloadProvider = switch (resolvedE2eeProvider) {
WampE2eeRuntimePayloadProvider provider => provider,
_ => null,
};
final canUseRuntimePayload =
pptScheme == 'wamp' &&
(payload.hasEncodedArguments || payload.hasEncodedArgumentsKeywords) &&
runtimePayloadProvider != null &&
runtimePayloadProvider.canUnpackFromRuntimeContext(
resolvedRuntimeContext,
);
return decodePayloadView(
canUseRuntimePayload ? null : payload.arguments,
canUseRuntimePayload ? null : payload.argumentsKeywords,
pptScheme: pptScheme,
pptSerializer: pptSerializer,
pptCipher: pptCipher,
pptKeyId: pptKeyId,
e2eeProvider: resolvedE2eeProvider,
runtimeContext: resolvedRuntimeContext,
);
}