1%%
2%% %CopyrightBegin%
3%%
4%% Copyright Ericsson AB 2004-2016. All Rights Reserved.
5%%
6%% Licensed under the Apache License, Version 2.0 (the "License");
7%% you may not use this file except in compliance with the License.
8%% You may obtain a copy of the License at
9%%
10%%     http://www.apache.org/licenses/LICENSE-2.0
11%%
12%% Unless required by applicable law or agreed to in writing, software
13%% distributed under the License is distributed on an "AS IS" BASIS,
14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15%% See the License for the specific language governing permissions and
16%% limitations under the License.
17%%
18%% %CopyrightEnd%
19%%
20%%
21-module(m_i_impl).
22-include("m.hrl").
23
24-export([init/1, terminate/2, void_test/1, long_test/2, ushort_test/2,
25	 longlong_test/2, ulong_test/2, ulonglong_test/2,
26	 double_test/2, char_test/2, wchar_test/2, octet_test/2,
27	 bool_test/2, struct_test/2, struct2_test/2, seq1_test/2,
28	 seq2_test/2, seq3_test/2, seq4_test/2, seq5_test/2,
29	 array1_test/2, array2_test/2, enum_test/2, string1_test/2,
30	 string2_test/2, string3_test/2, string4_test/2, pid_test/2,
31	 port_test/2, ref_test/2, term_test/2, typedef_test/3,
32	 inline_sequence_test/2, '_set_l'/2, '_get_l'/1,
33	 term_struct_test/2, term_sequence_test/2, wstring1_test/2]).
34
35-define(PRINTDEBUG(Case),
36	io:format("erl_server: case: ~p~n"
37		  "erl_server: location: ~p~n", [Case, [?FILE, ?LINE]])).
38-define(PRINTDEBUG2(Case, Msg),
39	io:format("erl_server: case: ~p~n"
40		  "erl_server: Msg: ~p~n"
41		  "erl_server: location: ~p~n", [Case, Msg, [?FILE, ?LINE]])).
42
43init(Env) ->
44    {ok, []}.
45
46terminate(F, R) ->
47    ok.
48
49'_get_l'(State) ->
50    ?PRINTDEBUG("_get_l"),
51    {reply, State, State}.
52void_test(State) ->
53    ?PRINTDEBUG("void_test"),
54    {reply, ok, State}.
55
56'_set_l'(State, V) ->
57    ?PRINTDEBUG2("_set_l", V),
58    {reply, ok, V}.
59ushort_test(State, V) ->
60    ?PRINTDEBUG2("ushort_test", V),
61    {reply, {V, V}, State}.
62long_test(State, V) ->
63    ?PRINTDEBUG2("long_test", V),
64    {reply, {V, V}, State}.
65longlong_test(State, V) ->
66    ?PRINTDEBUG2("longlong_test", V),
67    {reply, {V, V}, State}.
68ulong_test(State, V) ->
69    ?PRINTDEBUG2("ulong_test", V),
70    {reply, {V, V}, State}.
71ulonglong_test(State, V) ->
72    ?PRINTDEBUG2("ulonglong_test", V),
73    {reply, {V, V}, State}.
74double_test(State, V) ->
75    ?PRINTDEBUG2("double_test", V),
76    {reply, {V, V}, State}.
77char_test(State, V) ->
78    ?PRINTDEBUG2("char_test", V),
79    {reply, {V, V}, State}.
80wchar_test(State, V) ->
81    ?PRINTDEBUG2("wchar_test", V),
82    {reply, {V, V}, State}.
83octet_test(State, V) ->
84    ?PRINTDEBUG2("octet_test", V),
85    {reply, {V, V}, State}.
86bool_test(State, V) ->
87    ?PRINTDEBUG2("bool_test", V),
88    {reply, {V, V}, State}.
89
90struct_test(State, V) ->
91    ?PRINTDEBUG2("struct_test", V),
92    {reply, {V, V}, State}.
93struct2_test(State, V) ->
94    ?PRINTDEBUG2("struct2_test", V),
95    {reply, {V, V}, State}.
96seq1_test(State, V) ->
97    ?PRINTDEBUG2("seq1_test", V),
98    {reply, {V, V}, State}.
99seq2_test(State, V) ->
100    ?PRINTDEBUG2("seq2_test", V),
101    {reply, {V, V}, State}.
102seq3_test(State, V) ->
103    ?PRINTDEBUG2("seq3_test", V),
104    {reply, {V, V}, State}.
105seq4_test(State, V) ->
106    ?PRINTDEBUG2("seq4_test", V),
107    {reply, {V, V}, State}.
108seq5_test(State, V) ->
109    ?PRINTDEBUG2("seq5_test", V),
110    {reply, {V, V}, State}.
111array1_test(State, V) ->
112    ?PRINTDEBUG2("array1_test", V),
113    {reply, {V, V}, State}.
114array2_test(State, V) ->
115    ?PRINTDEBUG2("array2_test", V),
116    {reply, {V, V}, State}.
117enum_test(State, V) ->
118    ?PRINTDEBUG2("enum_test", V),
119    {reply, {V, V}, State}.
120string1_test(State, V) ->
121    ?PRINTDEBUG2("string1_test", V),
122    {reply, {V, V}, State}.
123string2_test(State, V) ->
124    ?PRINTDEBUG2("string2_test", V),
125    {reply, {V, V}, State}.
126string3_test(State, V) ->
127    ?PRINTDEBUG2("string3_test", V),
128    {reply, {V, V}, State}.
129string4_test(State, V) ->
130    ?PRINTDEBUG2("string4_test", V),
131    {reply, {V, V}, State}.
132pid_test(State, V) ->
133    ?PRINTDEBUG2("pid_test", V),
134    {reply, {V, V}, State}.
135port_test(State, V) ->
136    ?PRINTDEBUG2("port_test", binary_to_list(term_to_binary(V))),
137    {reply, {V, V}, State}.
138ref_test(State, V) ->
139    ?PRINTDEBUG2("ref_test", binary_to_list(term_to_binary(V))),
140    {reply, {V, V}, State}.
141term_test(State, V) ->
142    ?PRINTDEBUG2("term_test", V),
143    {reply, {V, V}, State}.
144typedef_test(State, A, B) ->
145    ?PRINTDEBUG2("typedef_test", [A,B]),
146    {reply, {4711, A, B}, State}.
147inline_sequence_test(State, V) ->
148    ?PRINTDEBUG2("inline_sequence_test", V),
149    {reply, {V, V}, State}.
150term_sequence_test(State, V) ->
151    ?PRINTDEBUG2("term_sequence_test", V),
152    {reply, {V, V}, State}.
153term_struct_test(State, V) ->
154    ?PRINTDEBUG2("term_struct_test", V),
155    {reply, {V, V}, State}.
156wstring1_test(State, V) ->
157    ?PRINTDEBUG2("wstring1_test", V),
158    {reply, {V, V}, State}.
159
160
161
162
163