blob: 239af6efecd8eea7f2a4524bd388cc5c9a7a1f86 [file] [log] [blame]
Christopher Piro2f5afce2007-06-29 07:17:33 +00001-module(tServerSocket).
2-include("tServerSocket.hrl").
3
4-export([new/1, listen_MUTABLE/1, accept_MUTABLE/1, close/1]).
5
6new(Port) ->
7 #tServerSocket{port=Port, handle=nil}.
8
9listen_MUTABLE(This) ->
10 Port = This#tServerSocket.port,
11 Options = [binary, {packet, 0}, {active, false}], % was []
12
13 case gen_tcp:listen(Port, Options) of
14 {ok, ListenSocket} ->
15 This#tServerSocket{handle=ListenSocket}
16 % {error, _} ->
17 % TODO: no error handling in Ruby version?
18 end.
19
20accept_MUTABLE(This) ->
21 if
22 This#tServerSocket.handle /= nil ->
23 case gen_tcp:accept(This#tServerSocket.handle) of
24 {ok, Socket} ->
25 tSocket:setHandle_MUTABLE( tSocket:new(), Socket )
26 % {error, _} ->
27 % TODO: no error handling in Ruby version?
28 end;
29 true ->
30 nil
31 end.
32
33close(This) ->
34 if
35 This#tServerSocket.handle /= nil ->
36 case gen_tcp:close(This#tServerSocket.handle) of
37 ok ->
38 ok
39 % {error, _} ->
40 % TODO: no error handling in Ruby version?
41 end;
42 true ->
43 ok
44 end.