%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 1998-2016. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
%% %CopyrightEnd%
%%
%%
-module(iiop_module_test_impl).
-include_lib("orber/include/corba.hrl").
-include("idl_output/iiop_module.hrl").
-export([send_void/1, send_short/3, send_ushort/3]).
-export([send_long/3, send_ulong/3, send_float/3]).
-export([send_double/3, send_boolean/3, send_char/3]).
-export([send_octet/3, send_any/3, send_object/3]).
-export([send_struct1/3, send_union1/3, send_enum1/3]).
-export([send_string/3, send_sequence1/3, send_array1/3]).
-export([ret_systemexception/1, ret_userexception/1]).
-export([start/0, stop/0]).
-export([init/1, terminate/2]).
init(_) ->
{ok, []}.
terminate(Reason, _State) ->
io:format("~p terminating with reason ~p~n", [?MODULE, Reason]),
ok.
start() ->
SFok = corba:create('iiop_module_test', "IDL:iiop_module/test:1.0"),
NS = corba:resolve_initial_references("NameService"),
NC1 = lname_component:set_id(lname_component:create(), "iiop_test"),
NC2 = lname_component:set_id(lname_component:create(), "erl_test"),
N = lname:insert_component(lname:create(), 1, NC1),
N1 = lname:insert_component(N, 2, NC2),
'CosNaming_NamingContext':bind(NS, N1, SFok),
SFok.
stop() ->
NS = corba:resolve_initial_references("NameService"),
NC1 = lname_component:set_id(lname_component:create(), "iiop_test"),
NC2 = lname_component:set_id(lname_component:create(), "erl_test"),
N = lname:insert_component(lname:create(), 1, NC1),
N1 = lname:insert_component(N, 2, NC2),
'CosNaming_NamingContext':unbind(NS, N1).
send_void(S) ->
{ok, S}.
send_short(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_ushort(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_long(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_ulong(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_float(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_double(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_boolean(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_char(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_octet(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_any(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_object(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_struct1(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_union1(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_enum1(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_string(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_sequence1(S, P1, P2) ->
{{P1, P1, P2}, S}.
send_array1(S, P1, P2) ->
{{P1, P1, P2}, S}.
ret_systemexception(S) ->
throw(#'BAD_PARAM'{}),
{ok, S}.
ret_userexception(S) ->
throw(#iiop_module_Except1{why="not readable",rest_of_name=["foo", "bar"]}),
{ok, S}.