~chris.foo/bytestag/trunk

« back to all changes in this revision

Viewing changes to src/py3/bytestag/client.py

  • Committer: Christopher Foo
  • Date: 2012-09-09 15:38:30 UTC
  • mfrom: (24.1.28 trunk)
  • Revision ID: chris.foo@gmail.com-20120909153830-575fqdbsju8dmg0k
Merges from trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
# This file is part of Bytestag.
3
3
# Copyright © 2012 Christopher Foo <chris.foo@gmail.com>.
4
4
# Licensed under GNU GPLv3. See COPYING.txt for details.
 
5
from bytestag import basedir
 
6
from bytestag.dht.downloading import Downloader
5
7
from bytestag.dht.network import DHTNetwork
6
8
from bytestag.dht.publishing import Publisher, Replicator
7
9
from bytestag.events import EventReactor, FnTaskSlot
37
39
    '''
38
40
 
39
41
    def __init__(self, cache_dir, address=('0.0.0.0', 0), node_id=None,
40
 
    known_node_address=None, initial_scan=False, use_port_forwarding=False):
 
42
    known_node_address=None, initial_scan=False, config_dir=None,
 
43
    use_port_forwarding=False):
41
44
        threading.Thread.__init__(self)
42
45
        self.daemon = True
43
46
        self.name = '{}.{}'.format(__name__, Client.__name__)
54
57
        self._upload_slot = FnTaskSlot()
55
58
        self._download_slot = FnTaskSlot()
56
59
        self._initial_scan = initial_scan
 
60
        self._config_dir = config_dir or basedir.config_dir
57
61
        self._upnp_client = None
58
62
        
59
63
        if use_port_forwarding:
134
138
            self._aggregated_kvp_table, self._upload_slot)
135
139
        self._replicator = Replicator(self._event_reactor, self._dht_network,
136
140
            self._aggregated_kvp_table, self._upload_slot)
 
141
        self._downloader = Downloader(self._event_reactor, self._config_dir,
 
142
            self._dht_network, self._download_slot)
137
143
 
138
144
    def _hook_port_forwarding_cleanup(self):
139
145
        atexit.register(self._cleanup_port_forwarding)