Preliminary chunk manager code.
[etorrent.git] / lib / etorrent-1.0 / src / etorrent_sup.erl
blobd5ecfea60be8479ac0e73324d404a80bd5f66292
1 %%%-------------------------------------------------------------------
2 %%% File : etorrent.erl
3 %%% Author : User Jlouis <jesper.louis.andersen@gmail.com>
4 %%% License : See COPYING
5 %%% Description : Start up etorrent and supervise it.
6 %%%
7 %%% Created : 30 Jan 2007 by User Jlouis <jesper.louis.andersen@gmail.com>
8 %%%-------------------------------------------------------------------
9 -module(etorrent_sup).
11 -behaviour(supervisor).
13 %% API
14 -export([start_link/0]).
16 %% Supervisor callbacks
17 -export([init/1]).
19 -define(SERVER, ?MODULE).
21 %%====================================================================
22 %% API functions
23 %%====================================================================
24 start_link() ->
25 supervisor:start_link({local, ?MODULE}, ?MODULE, []).
27 %%====================================================================
28 %% Supervisor callbacks
29 %%====================================================================
30 init([]) ->
31 EventManager = {event_manager,
32 {etorrent_event_mgr, start_link, []},
33 permanent, 2000, worker, [etorrent_event_mgr]},
34 BadPeerMgr = {bad_peer_mgr,
35 {etorrent_bad_peer_mgr, start_link, []},
36 permanent, 5000, worker, [etorrent_bad_peer_mgr]},
37 FastResume = {fast_resume,
38 {etorrent_fast_resume, start_link, []},
39 permanent, 5000, worker, [etorrent_fast_resume]},
40 RateManager = {rate_manager,
41 {etorrent_rate_mgr, start_link, []},
42 permanent, 5000, worker, [etorrent_rate_mgr]},
43 PieceManager = {etorrent_piece_mgr,
44 {etorrent_piece_mgr, start_link, []},
45 permanent, 15000, worker, [etorrent_piece_mgr]},
46 ChunkManager = {etorrent_chunk_mgr,
47 {etorrent_chunk_mgr, start_link, []},
48 permanent, 15000, worker, [etorrent_chunk_mgr]},
49 Listener = {listener,
50 {etorrent_listener, start_link, []},
51 permanent, 2000, worker, [etorrent_listener]},
52 AcceptorSup = {acceptor_sup,
53 {etorrent_acceptor_sup, start_link, []},
54 permanent, infinity, supervisor, [etorrent_acceptor_sup]},
55 DirWatcherSup = {dirwatcher_sup,
56 {etorrent_dirwatcher_sup, start_link, []},
57 transient, infinity, supervisor, [etorrent_dirwatcher_sup]},
58 TorrentMgr = {manager,
59 {etorrent_t_manager, start_link, []},
60 permanent, 2000, worker, [etorrent_t_manager]},
61 TorrentPool = {torrent_pool_sup,
62 {etorrent_t_pool_sup, start_link, []},
63 transient, infinity, supervisor, [etorrent_t_pool_sup]},
65 {ok, {{one_for_all, 1, 60},
66 [EventManager, BadPeerMgr, FastResume, PieceManager,
67 ChunkManager, RateManager, Listener, AcceptorSup, DirWatcherSup, TorrentMgr,
68 TorrentPool]}}.
70 %%====================================================================
71 %% Internal functions
72 %%====================================================================