aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl')
-rw-r--r--lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl244
1 files changed, 244 insertions, 0 deletions
diff --git a/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl
new file mode 100644
index 0000000000..9fc6f50d64
--- /dev/null
+++ b/lib/asn1/test/asn1_bin_SUITE_data/P-Record.erl
@@ -0,0 +1,244 @@
+%% Generated by the Erlang ASN.1 BER-compiler version, utilizing bit-syntax:1.3.1.4
+%% Purpose: encoder and decoder to the types in mod P-Record
+
+-module('P-Record').
+-include("P-Record.hrl").
+-define('RT_PER',asn1rt_per_bin).
+-export([encoding_rule/0]).
+-export([
+'enc_PersonnelRecord'/1,
+'enc_ChildInformation'/1,
+'enc_Name'/1,
+'enc_EmployeeNumber'/1,
+'enc_Date'/1
+]).
+
+-export([
+'dec_PersonnelRecord'/2,
+'dec_ChildInformation'/2,
+'dec_Name'/2,
+'dec_EmployeeNumber'/2,
+'dec_Date'/2
+]).
+
+-export([
+'v'/0
+]).
+
+
+
+-export([encode/2,decode/2,encode_disp/2,decode_disp/2]).
+
+encoding_rule() ->
+ per_bin.
+
+encode(Type,Data) ->
+case catch ?RT_PER:complete(encode_disp(Type,Data)) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {Bytes,Len} ->
+ {ok,Bytes};
+ X ->
+ {ok,X}
+end.
+
+decode(Type,Data) ->
+case catch decode_disp(Type,Data) of
+ {'EXIT',{error,Reason}} ->
+ {error,Reason};
+ {'EXIT',Reason} ->
+ {error,{asn1,Reason}};
+ {X,_Rest} ->
+ {ok,X};
+ {X,_Rest,_Len} ->
+ {ok,X}
+end.
+
+encode_disp('PersonnelRecord',Data) -> 'enc_PersonnelRecord'(Data);
+encode_disp('ChildInformation',Data) -> 'enc_ChildInformation'(Data);
+encode_disp('Name',Data) -> 'enc_Name'(Data);
+encode_disp('EmployeeNumber',Data) -> 'enc_EmployeeNumber'(Data);
+encode_disp('Date',Data) -> 'enc_Date'(Data);
+encode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+decode_disp('PersonnelRecord',Data) -> 'dec_PersonnelRecord'(Data,mandatory);
+decode_disp('ChildInformation',Data) -> 'dec_ChildInformation'(Data,mandatory);
+decode_disp('Name',Data) -> 'dec_Name'(Data,mandatory);
+decode_disp('EmployeeNumber',Data) -> 'dec_EmployeeNumber'(Data,mandatory);
+decode_disp('Date',Data) -> 'dec_Date'(Data,mandatory);
+decode_disp(Type,Data) -> exit({error,{asn1,{undefined_type,Type}}}).
+
+
+
+
+
+'enc_PersonnelRecord'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{children,6}],Val),
+[
+?RT_PER:setoptionals(Opt),
+
+%% attribute number 1 with type Externaltypereference6P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,title)),
+
+%% attribute number 3 with type INTEGER
+?RT_PER:encode_integer([],?RT_PER:cindex(4,Val1,number)),
+
+%% attribute number 4 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(5,Val1,dateOfHire)),
+
+%% attribute number 5 with type Externaltypereference10P-RecordName
+'enc_Name'(?RT_PER:cindex(6,Val1,nameOfSpouse)),
+case ?RT_PER:cindex(7,Val1,children) of
+asn1_DEFAULT -> [];
+_ ->
+
+%% attribute number 6 with type SEQUENCE OF
+'enc_PersonnelRecord_children'(?RT_PER:cindex(7,Val1,children))
+end].
+
+'enc_PersonnelRecord_children'({'PersonnelRecord_children',Val}) ->
+'enc_PersonnelRecord_children'(Val);
+
+'enc_PersonnelRecord_children'(Val) ->
+[
+
+ ?RT_PER:encode_length(undefined,length(Val)),
+ 'enc_PersonnelRecord_children_components'(Val, [])
+].
+'enc_PersonnelRecord_children_components'([], Acc) -> lists:reverse(Acc);
+
+'enc_PersonnelRecord_children_components'([H|T], Acc) ->
+'enc_PersonnelRecord_children_components'(T, ['enc_ChildInformation'(H)
+
+ | Acc]).
+
+'dec_PersonnelRecord_children'(Bytes,Telltype) ->
+
+{Num,Bytes1} = ?RT_PER:decode_length(Bytes,undefined),
+'dec_PersonnelRecord_children_components'(Num, Bytes1, Telltype, []).
+'dec_PersonnelRecord_children_components'(0, Bytes, Telltype, Acc) ->
+ {lists:reverse(Acc), Bytes};
+'dec_PersonnelRecord_children_components'(Num, Bytes, Telltype, Acc) ->
+ {Term,Remain} = 'P-Record':'dec_ChildInformation'(Bytes,Telltype),
+ 'dec_PersonnelRecord_children_components'(Num-1, Remain, Telltype, [Term|Acc]).
+
+
+'dec_PersonnelRecord'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,1),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = 'dec_Name'(Bytes1,telltype),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+
+%% attribute number 3 with type INTEGER
+{Term3,Bytes4} = ?RT_PER:decode_integer(Bytes3,[]),
+
+%% attribute number 4 with type VisibleString
+{Term4,Bytes5} = ?RT_PER:decode_VisibleString(Bytes4,[]),
+
+%% attribute number 5 with type Name
+{Term5,Bytes6} = 'dec_Name'(Bytes5,telltype),
+
+%% attribute number 6 with type SEQUENCE OF
+{Term6,Bytes7} = case element(1,Opt) of
+1 ->'dec_PersonnelRecord_children'(Bytes6, Telltype);
+0 ->{[],Bytes6}
+
+end,
+{{'PersonnelRecord',Term1,Term2,Term3,Term4,Term5,Term6},Bytes7}.
+
+'enc_ChildInformation'(Val) ->
+{Val1,Opt} = ?RT_PER:fixoptionals([{name,1},{dateOfBirth,2}],Val),
+[
+?RT_PER:setoptionals(Opt),
+case ?RT_PER:cindex(2,Val1,name) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 1 with type Externaltypereference15P-RecordName
+'enc_Name'(?RT_PER:cindex(2,Val1,name))
+end,
+case ?RT_PER:cindex(3,Val1,dateOfBirth) of
+asn1_NOVALUE -> [];
+_ ->
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,dateOfBirth))
+end].
+
+
+'dec_ChildInformation'(Bytes,Telltype) ->
+{Opt,Bytes1} = ?RT_PER:getoptionals(Bytes,2),
+%% attribute number 1 with type Name
+{Term1,Bytes2} = case element(1,Opt) of
+1 ->'dec_Name'(Bytes1,telltype);
+0 ->{asn1_NOVALUE,Bytes1}
+
+end,
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes3} = case element(2,Opt) of
+1 ->?RT_PER:decode_VisibleString(Bytes2,[]);
+0 ->{asn1_NOVALUE,Bytes2}
+
+end,
+{{'ChildInformation',Term1,Term2},Bytes3}.
+
+'enc_Name'(Val) ->
+Val1 = ?RT_PER:list_to_record('Name', Val),
+[
+
+%% attribute number 1 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(2,Val1,givenName)),
+
+%% attribute number 2 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(3,Val1,initial)),
+
+%% attribute number 3 with type VisibleString
+?RT_PER:encode_VisibleString([],?RT_PER:cindex(4,Val1,familyName))].
+
+
+'dec_Name'(Bytes,Telltype) ->
+
+%% attribute number 1 with type VisibleString
+{Term1,Bytes1} = ?RT_PER:decode_VisibleString(Bytes,[]),
+
+%% attribute number 2 with type VisibleString
+{Term2,Bytes2} = ?RT_PER:decode_VisibleString(Bytes1,[]),
+
+%% attribute number 3 with type VisibleString
+{Term3,Bytes3} = ?RT_PER:decode_VisibleString(Bytes2,[]),
+{{'Name',Term1,Term2,Term3},Bytes3}.
+
+
+'enc_EmployeeNumber'({'EmployeeNumber',Val}) ->
+'enc_EmployeeNumber'(Val);
+
+'enc_EmployeeNumber'(Val) ->
+?RT_PER:encode_integer([],Val).
+
+
+'dec_EmployeeNumber'(Bytes,Telltype) ->
+?RT_PER:decode_integer(Bytes,[]).
+
+
+'enc_Date'({'Date',Val}) ->
+'enc_Date'(Val);
+
+'enc_Date'(Val) ->
+?RT_PER:encode_VisibleString([],Val).
+
+
+'dec_Date'(Bytes,Telltype) ->
+?RT_PER:decode_VisibleString(Bytes,[]).
+
+'v'() ->
+{'PersonnelRecord',{'Name',{74,111,104,110},[80],[83,109,105,116,104]},[68,105,114,101,99,116,111,114],51,[49,57,55,49,48,57,49,55],{'Name',{77,97,114,121},[84],[83,109,105,116,104]},[{'ChildInformation',{'Name',[82,97,108,112,104],[84],[83,109,105,116,104]},[49,57,53,55,49,49,49,49]},{'ChildInformation',{'Name',[83,117,115,97,110],[66],[74,111,110,101,115]},[49,57,53,57,48,55,49,55]}]}.
+