in azure_functions_worker/bindings/meta.py [0:0]
def to_outgoing_param_binding(binding: str, obj: typing.Any, *,
pytype: typing.Optional[type],
out_name: str,
shmem_mgr: SharedMemoryManager,
is_function_data_cache_enabled: bool) \
-> protos.ParameterBinding:
datum = get_datum(binding, obj, pytype)
shared_mem_value = None
if _can_transfer_over_shmem(shmem_mgr, is_function_data_cache_enabled,
datum):
shared_mem_value = datumdef.Datum.to_rpc_shared_memory(datum, shmem_mgr)
# Check if data was written into shared memory
if shared_mem_value is not None:
# If it was, then use the rpc_shared_memory field in response message
return protos.ParameterBinding(
name=out_name,
rpc_shared_memory=shared_mem_value)
else:
# If not, send it as part of the response message over RPC
# rpc_val can be None here as we now support a None return type
rpc_val = datumdef.datum_as_proto(datum)
return protos.ParameterBinding(
name=out_name,
data=rpc_val)