diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/ic/examples/erl-genserv | |
download | otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2 otp-84adefa331c4159d432d22840663c38f155cd4c1.zip |
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/ic/examples/erl-genserv')
-rw-r--r-- | lib/ic/examples/erl-genserv/ReadMe | 30 | ||||
-rw-r--r-- | lib/ic/examples/erl-genserv/random.idl | 50 | ||||
-rw-r--r-- | lib/ic/examples/erl-genserv/rmod_random_impl.erl | 63 |
3 files changed, 143 insertions, 0 deletions
diff --git a/lib/ic/examples/erl-genserv/ReadMe b/lib/ic/examples/erl-genserv/ReadMe new file mode 100644 index 0000000000..cde588e269 --- /dev/null +++ b/lib/ic/examples/erl-genserv/ReadMe @@ -0,0 +1,30 @@ +This is a short description on the use of the c-client demo, +a client that initiates and uses a random number generator +that lies on an Erlang-genserver. + +Instructions. + + On the erlang shell type : + -------------------------- + + ic:gen(random,[{be,erl_genserv}]). ( generates the plain code ) + + make:all(). ( compiles the erlang code ) + + {ok,R} = rmod_random:oe_create(). ( initializes the server ) + + + Running the example : + --------------------- + + rmod_random:init(R,1,2,3). ( initializes the generator ) + + rmod_random:produce(R). ( generates a random number ) + + + + + + + + diff --git a/lib/ic/examples/erl-genserv/random.idl b/lib/ic/examples/erl-genserv/random.idl new file mode 100644 index 0000000000..4527988b48 --- /dev/null +++ b/lib/ic/examples/erl-genserv/random.idl @@ -0,0 +1,50 @@ +// ``The contents of this file are subject to the Erlang Public License, +// Version 1.1, (the "License"); you may not use this file except in +// compliance with the License. You should have received a copy of the +// Erlang Public License along with this software. If not, it can be +// retrieved via the world wide web at http://www.erlang.org/. +// +// Software distributed under the License is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +// the License for the specific language governing rights and limitations +// under the License. +// +// The Initial Developer of the Original Code is Ericsson Utvecklings AB. +// Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings +// AB. All Rights Reserved.'' +// +// $Id$ +// + +#ifndef _RANDOM_IDL +#define _RANDOM_IDL + + +module rmod { + + interface random { + + double produce(); + + oneway void init(in long seed1, in long seed2, in long seed3); + + }; + +}; + +#endif + + + + + + + + + + + + + + + diff --git a/lib/ic/examples/erl-genserv/rmod_random_impl.erl b/lib/ic/examples/erl-genserv/rmod_random_impl.erl new file mode 100644 index 0000000000..70f5887f1c --- /dev/null +++ b/lib/ic/examples/erl-genserv/rmod_random_impl.erl @@ -0,0 +1,63 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 1998-2009. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% +%% +%% +-module('rmod_random_impl'). +-export([init/1, terminate/2, start/0]). +-export([produce/1,init/4]). + + +init(Env) -> + {ok, []}. + +terminate(From, Reason) -> + ok. + + +produce(_Random) -> + case catch random:uniform() of + {'EXIT',_} -> + true; + RUnif -> + {reply,RUnif,[]} + end. + + +init(_Random,S1,S2,S3) -> + case catch random:seed(S1,S2,S3) of + {'EXIT',_} -> + true; + _ -> + {noreply,[]} + end. + + +%% This starts up the random number server +start() -> + %% Start the gen server + {ok,Pid} = rmod_random:oe_create([],{local,'rmod_random_impl'}), + true. + + + + + + + + + |