~rdoering/ubuntu/karmic/erlang/fix-535090

« back to all changes in this revision

Viewing changes to lib/sasl/doc/src/rel/portc.2.erl

  • Committer: Bazaar Package Importer
  • Author(s): Sergei Golovan
  • Date: 2009-02-15 16:42:52 UTC
  • mfrom: (3.1.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090215164252-q5x4rcf8a5pbesb1
Tags: 1:12.b.5-dfsg-2
Upload to unstable after lenny is released.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-module(portc).
 
2
-vsn(2).
 
3
-behaviour(gen_server).
 
4
 
 
5
-export([get_data/0]).
 
6
-export([init/1, handle_call/3, handle_info/2, code_change/3]).
 
7
 
 
8
-record(state, {port, data}).
 
9
 
 
10
get_data() -> gen_server:call(portc, get_data).
 
11
 
 
12
init([]) ->
 
13
    PortProg = code:priv_dir(foo) ++ "/bin/portc",
 
14
    Port = open_port({spawn, PortProg}, [binary, {packet, 2}]),
 
15
    {ok, #state{port = Port}}.
 
16
 
 
17
handle_call(get_data, _From, State) ->
 
18
    {reply, {ok, State#state.data}, State}.
 
19
 
 
20
handle_info({Port, Cmd}, State) ->
 
21
    NewState = do_cmd(Cmd, State),
 
22
    {noreply, NewState}.
 
23
 
 
24
code_change(_, State, change_port_only) ->
 
25
    State#state.port ! close,
 
26
    receive
 
27
        {Port, closed} -> true
 
28
    end,
 
29
    NPortProg = code:priv_dir(foo) ++ "/bin/portc",   % get new version
 
30
    NPort = open_port({spawn, NPortProg}, [binary, {packet, 2}]),
 
31
    {ok, State#state{port = NPort}};
 
32
code_change(1, State, change_erl_only) ->
 
33
    NState = transform_state(State),
 
34
    {ok, NState}.