From 2e422db2bf236fb5369cbfe54b6ccd727703b801 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Sat, 2 Feb 2013 00:51:02 +0100 Subject: Add exprecs '#get-'/1 for transforming records into lists The generated '#get-'/1 has one clause for each exported record r, whose definition is equivalent to the following. '#get-'(#r{} = Rec) -> [r | lists:zip(record_info(r, fields), tl(tuple_to_list(Rec)))]; The record name at the head of the list is the same format that diameter accepts for outgoing message. --- lib/diameter/src/base/diameter_capx.erl | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'lib/diameter/src/base/diameter_capx.erl') diff --git a/lib/diameter/src/base/diameter_capx.erl b/lib/diameter/src/base/diameter_capx.erl index 9efe28b9e0..715b15628c 100644 --- a/lib/diameter/src/base/diameter_capx.erl +++ b/lib/diameter/src/base/diameter_capx.erl @@ -282,17 +282,9 @@ cs(LS, RS) -> %% CER is a subset of CEA, the latter adding Result-Code and a few %% more AVP's. cea_from_cer(CER, Dict) -> - lists:foldl(fun(F,A) -> to_cea(CER, F, A, Dict) end, - Dict:'#new-'(diameter_base_CEA), - Dict:'#info-'(diameter_base_CER, fields)). + [diameter_base_CER | Values] = Dict:'#get-'(CER), + Dict:'#set-'(Values, Dict:'#new-'(diameter_base_CEA)). -to_cea(CER, Field, CEA, Dict) -> - try Dict:'#get-'(Field, CER) of - V -> Dict:'#set-'({Field, V}, CEA) - catch - error: _ -> CEA - end. - %% rCEA/3 rCEA(CEA, #diameter_service{capabilities = LCaps} = Svc, Dict) -> -- cgit v1.2.3