예제 #1
0
    def setUp(self):
        # prepare database

        launchmany = FakeLauchMany()
        self.overlay_bridge = TimedTaskQueue()
        #self.overlay_bridge = FakeOverlayBridge()
        self.data_handler = DataHandler(launchmany,
                                        self.overlay_bridge,
                                        max_num_peers=2500)
예제 #2
0
    def setUp(self):
        # prepare database

        launchmany = FakeLauchMany()
        self.overlay_bridge = TimedTaskQueue()
        #self.overlay_bridge = FakeOverlayBridge()
        superpeer = False  # enable it to test superpeer
        self.bc = BuddyCastFactory.getInstance(superpeer=superpeer)
        self.bc.register(self.overlay_bridge, launchmany, None, None, None,
                         True)
예제 #3
0
    def __init__(self):
        if OverlayThreadingBridge.__single:
            raise RuntimeError, "OverlayThreadingBridge is Singleton"
        OverlayThreadingBridge.__single = self

        self.secover = None
        self.olapps = None
        self.olappsmsghandler = None
        self.olappsconnhandler = None

        # Current impl of wrapper: single thread
        self.tqueue = TimedTaskQueue(nameprefix="Overlay")
예제 #4
0
    def register(self, dispersy, session):
        self.session = session
        self.dispersy = dispersy

        from Tribler.Utilities.TimedTaskQueue import TimedTaskQueue
        tqueue = TimedTaskQueue("RemoteTorrentHandler")
        self.scheduletask = tqueue.add_task
        self.torrent_db = session.open_dbhandler('torrents')

        self.drequesters[0] = MagnetRequester(self, 0)
        self.drequesters[1] = MagnetRequester(self, 1)
        self.registered = True
예제 #5
0
    def register(self, dispersy, session, max_num_torrents):
        self.session = session
        self.dispersy = dispersy
        self.max_num_torrents = max_num_torrents
        self.tor_col_dir = self.session.get_torrent_collecting_dir()

        from Tribler.Utilities.TimedTaskQueue import TimedTaskQueue
        self.tqueue = TimedTaskQueue("RemoteTorrentHandler")
        self.scheduletask = self.tqueue.add_task
        self.torrent_db = session.open_dbhandler('torrents')
        self.channel_db = self.session.open_dbhandler(NTFY_CHANNELCAST)

        self.drequesters[0] = MagnetRequester(self, 0)
        self.drequesters[1] = MagnetRequester(self, 1)
        self.tnrequester = ThumbnailRequester(self, self.session)
        self.registered = True

        startWorker(None, self.__check_overflow)
예제 #6
0
    def register(self, dispersy, database_thead, session, max_num_torrents):
        self.session = session
        self.dispersy = dispersy
        self.database_thead = database_thead
        self.max_num_torrents = max_num_torrents
        self.tor_col_dir = self.session.get_torrent_collecting_dir()

        from Tribler.Utilities.TimedTaskQueue import TimedTaskQueue
        self.tqueue = TimedTaskQueue("RemoteTorrentHandler")
        self.scheduletask = self.tqueue.add_task

        self.torrent_db = None
        if self.session.get_megacache():
            self.torrent_db = session.open_dbhandler('torrents')
            self.database_thead.register(self.__check_overflow, delay=30.0)

        if session.get_dht_torrent_collecting():
            self.drequesters[0] = MagnetRequester(self, 0)
            self.drequesters[1] = MagnetRequester(self, 1)
        self.tnrequester = ThumbnailRequester(self, self.session)
        self.registered = True
예제 #7
0
    def __init__(self, redirectstderrout, appname, appversion, params,
                 single_instance_checker, installdir, i2iport, sport,
                 httpport):

        # Almost generic HTTP server
        self.videoHTTPServer = VideoHTTPServer(httpport)
        self.videoHTTPServer.register(self.videoservthread_error_callback,
                                      self.videoservthread_set_status_callback)

        BaseApp.__init__(self, redirectstderrout, appname, appversion, params,
                         single_instance_checker, installdir, i2iport, sport)
        self.httpport = httpport

        # SEARCH:P2P
        # Maps a query ID to the original searchstr, timestamp and all hits (local + remote)
        self.id2hits = Query2HitsMap()

        # Maps a URL path received by HTTP server to the requested resource,
        # reading or generating it dynamically.
        #
        # For saving .torrents received in hits to P2P searches using
        # SIMPLE+METADATA queries
        self.tqueue = TimedTaskQueue(nameprefix="BGTaskQueue")
        self.searchmapper = SearchPathMapper(self.s, self.id2hits, self.tqueue)
        self.hits2anypathmapper = Hits2AnyPathMapper(self.s, self.id2hits)

        self.videoHTTPServer.add_path_mapper(self.searchmapper)
        self.videoHTTPServer.add_path_mapper(self.hits2anypathmapper)

        # WEB Interface
        # Maps a URL path received by HTTP server to the requested resource,
        # reading or generating it dynamically.
        self.webIFmapper = WebIFPathMapper(self, self.s)

        self.videoHTTPServer.add_path_mapper(self.webIFmapper)

        # Generic HTTP server start. Don't add mappers dynamically afterwards!
        self.videoHTTPServer.background_serve()

        # Maps Downloads to a using InstanceConnection and streaminfo when it
        # plays. So it contains the Downloads in VOD mode for which there is
        # active interest from a plugin.
        #
        # At the moment each Download is used/owned by a single IC and a new
        # request for the same torrent will stop playback to the original IC
        # and resume it to the new user.
        #
        self.dusers = {}
        self.approxplayerstate = MEDIASTATE_STOPPED

        self.counter = 0  # counter for the stats reported periodically
        self.interval = 120  # report interval
        self.iseedeadpeople = False

        if sys.platform == "win32":
            # If the BG Process is started by the plug-in notify it with an event
            try:
                startupEvent = win32event.CreateEvent(None, 0, 0,
                                                      'startupEvent')
                win32event.SetEvent(startupEvent)
                win32api.CloseHandle(
                    startupEvent
                )  # TODO : is it possible to avoid importing win32api just to close an handler?
            except:
                pass
예제 #8
0
 def setUp(self):
     self.queue = TimedTaskQueue()
예제 #9
0
 def __init__(self):
     from Tribler.Utilities.TimedTaskQueue import TimedTaskQueue
     self.queue = TimedTaskQueue("FakeCallback")
예제 #10
0
 def setUp(self):
     self.ntasks = 0
     self.completed = []
     self.guiserver = TimedTaskQueue()