Ejemplo n.º 1
0
class PersistInfo(Plugin):

    # Filename where to persist information
    filename = Path(default="%(checkbox_data)s/plugins.bpickle")

    def register(self, manager):
        super(PersistInfo, self).register(manager)

        self.persist = None

        for (rt, rh) in [
             ("begin", self.begin),
             ("prompt-begin", self.begin),
             ("prompt-job", self.save)]:
            self._manager.reactor.call_on(rt, rh, -100)

        # Save persist data last
        self._manager.reactor.call_on("stop", self.save, 1000)

    def begin(self, interface=None):
        if self.persist is None:
            self.persist = Persist(self.filename)
            self._manager.reactor.fire("begin-persist", self.persist)

    def save(self, *args):
        # Flush data to disk
        if self.persist:
            self.persist.save()
Ejemplo n.º 2
0
class PersistInfo(Plugin):

    # Filename where to persist information
    filename = Path(default="%(checkbox_data)s/plugins.bpickle")

    def register(self, manager):
        super(PersistInfo, self).register(manager)

        self.persist = None

        for (rt, rh) in [
             ("begin", self.begin),
             ("prompt-begin", self.begin),
             ("prompt-job", self.save),
             ("report-jobs", self.save)]:
            self._manager.reactor.call_on(rt, rh, -100)

        # Save persist data last
        self._manager.reactor.call_on("stop", self.save, 900)

        #This should fire first thing during the gathering phase.
        self._manager.reactor.call_on("gather", self.begin_gather, -900)

        #This should fire last during gathering (i.e. after
        #all other gathering callbacks are finished)
        self._manager.reactor.call_on("gather", self.end_gather, 900)

    def begin(self, interface=None):
        if self.persist is None:
            self.persist = Persist(self.filename)
            self._manager.reactor.fire("begin-persist", self.persist)

    def save(self, *args):
        # Flush data to disk
        if self.persist:
            self.persist.save()

    def begin_gather(self):
        #Speed boost during the gathering phase. Not critical data anyway.
        self.persist._backend.safe_file_closing = False

    def end_gather(self):
        #Back to saving data very carefully once gathering is done.
        self.persist._backend.safe_file_closing = True 
Ejemplo n.º 3
0
class PersistInfo(Plugin):

    # Filename where to persist information
    filename = Path(default="%(checkbox_data)s/plugins.bpickle")

    def register(self, manager):
        super(PersistInfo, self).register(manager)

        self.persist = None

        for (rt, rh) in [("begin", self.begin), ("prompt-begin", self.begin),
                         ("prompt-job", self.save),
                         ("report-jobs", self.save)]:
            self._manager.reactor.call_on(rt, rh, -100)

        # Save persist data last
        self._manager.reactor.call_on("stop", self.save, 900)

        #This should fire first thing during the gathering phase.
        self._manager.reactor.call_on("gather", self.begin_gather, -900)

        #This should fire last during gathering (i.e. after
        #all other gathering callbacks are finished)
        self._manager.reactor.call_on("gather", self.end_gather, 900)

    def begin(self, interface=None):
        if self.persist is None:
            self.persist = Persist(self.filename)
            self._manager.reactor.fire("begin-persist", self.persist)

    def save(self, *args):
        # Flush data to disk
        if self.persist:
            self.persist.save()

    def begin_gather(self):
        #Speed boost during the gathering phase. Not critical data anyway.
        self.persist._backend.safe_file_closing = False

    def end_gather(self):
        #Back to saving data very carefully once gathering is done.
        self.persist._backend.safe_file_closing = True
Ejemplo n.º 4
0
class PersistInfo(Plugin):

    # E-mail address used to sign in to Launchpad.
    filename = Path(default="%(checkbox_data)s/plugins.bpickle")

    def register(self, manager):
        super(PersistInfo, self).register(manager)

        self.persist = None

        for (rt, rh) in [
             ("gather", self.gather),
             ("stop", self.stop)]:
            self._manager.reactor.call_on(rt, rh)

    def gather(self):
        self.persist = Persist(self.filename)
        self._manager.reactor.fire("gather-persist", self.persist)

    def stop(self):
        """Flush data to disk."""
        if self.persist:
            self.persist.save()