aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ic/examples/erl-genserv
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/ic/examples/erl-genserv
downloadotp-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/ReadMe30
-rw-r--r--lib/ic/examples/erl-genserv/random.idl50
-rw-r--r--lib/ic/examples/erl-genserv/rmod_random_impl.erl63
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.
+
+
+
+
+
+
+
+
+