Beispiel #1
0
    def setValueSlot(self, newValue):
        logging.info("Setting %s %s", str(self), newValue)
        if not self.keyspace.loaded:
            if SynchronousPropertyAccess.SynchronousPropertyAccess.getCurrent() is not None:
                self.keyspace.waitLoaded()
            else:
                logging.info("raising NotLoadedException for %s", self)
                raise NotLoadedException(self.keyspace)

        if newValue is None:
            SharedStateSynchronizer.getSynchronizer().writeValue(
                self.keyspace.keyspaceName,
                self.keyName,
                None
                )
        else:
            assert isinstance(newValue, tuple)
            assert len(newValue) == 1

            try:
                SharedStateSynchronizer.getSynchronizer().writeValue(
                    self.keyspace.keyspaceName,
                    self.keyName,
                    JsonPickle.toJson(newValue[0])
                    )
            except Exception as e:
                logging.error("%s", traceback.format_exc())
                raise

        self.value_ = newValue
Beispiel #2
0
    def setValueSlot(self, newValue):
        logging.info("Setting %s %s", str(self), newValue)
        if not self.keyspace.loaded:
            if SynchronousPropertyAccess.SynchronousPropertyAccess.getCurrent(
            ) is not None:
                self.keyspace.waitLoaded()
            else:
                logging.info("raising NotLoadedException for %s", self)
                raise NotLoadedException(self.keyspace)

        if newValue is None:
            SharedStateSynchronizer.getSynchronizer().writeValue(
                self.keyspace.keyspaceName, self.keyName, None)
        else:
            assert isinstance(newValue, tuple)
            assert len(newValue) == 1

            try:
                SharedStateSynchronizer.getSynchronizer().writeValue(
                    self.keyspace.keyspaceName, self.keyName,
                    JsonPickle.toJson(newValue[0]))
            except Exception as e:
                logging.error("%s", traceback.format_exc())
                raise

        self.value_ = newValue
Beispiel #3
0
 def waitLoaded(self):
     if not self.isLoaded_:
         self.ensureSubscribed()
         SharedStateSynchronizer.getSynchronizer().waitForKeyspaceAndPrefix(
                                                             self.keyspaceName,
                                                             NativeJson.Json(())
                                                             )
Beispiel #4
0
    def ensureSubscribed(self):
        assert SharedStateSynchronizer.isConnected()
        if not self.isSubscribed_:
            logging.info("ComputedGraphSharedState subscribing to: %s", self)

            SharedStateSynchronizer.getSynchronizer().addKeyspaceListener(
                self.keyspaceName, KeyspaceUpdater(self), NativeJson.Json(()))
            self.isSubscribed_ = True
Beispiel #5
0
    def ensureSubscribed(self):
        assert SharedStateSynchronizer.isConnected()
        if not self.isSubscribed_:
            logging.info("ComputedGraphSharedState subscribing to: %s", self)

            SharedStateSynchronizer.getSynchronizer().addKeyspaceListener(
                self.keyspaceName,
                KeyspaceUpdater(self),
                NativeJson.Json(())
                )
            self.isSubscribed_ = True
Beispiel #6
0
    def populateKey(self):
        keyspace, key = self.createKey()

        keyspace.waitLoaded()

        key.value = (self.keyValue,)

        SharedStateSynchronizer.getSynchronizer().update()
        SharedStateSynchronizer.getSynchronizer().commitPendingWrites()

        return key
Beispiel #7
0
        def initSynchronizer():
            self.synchronizer = SharedStateSynchronizer.SharedStateSynchronizer()

            logging.info("created a SharedStateSynchronizer")

            self.synchronizer.attachView(
                sharedStateViewFactory.createView()
                )

            logging.info("attached shared state view.")
Beispiel #8
0
    def synchronizerUpdateTest(self, computedGraphTestHarness):
        synchronizer = self.createSynchronizer()

        def updateValueInSharedState(self, key, view):
            view[key] = JsonPickle.toJson(self.keyValue)

        self.runInTransaction(self.keyName, updateValueInSharedState, False)

        with synchronizer:
            assert SharedStateSynchronizer.getView() is not None

            computedGraphKeyspace, computedGraphKey = self.createKey()

            self.synchronizerWaitForKey(self.keyName, synchronizer)

            self.assertEqual(computedGraphKey.value, (self.keyValue,))
Beispiel #9
0
 def waitLoaded(self):
     if not self.isLoaded_:
         self.ensureSubscribed()
         SharedStateSynchronizer.getSynchronizer().waitForKeyspaceAndPrefix(
             self.keyspaceName, NativeJson.Json(()))
Beispiel #10
0
    def createSynchronizer(self):
        synchronizer = SharedStateSynchronizer.SharedStateSynchronizer()
        synchronizer.attachView(self.sharedState.newView())

        return synchronizer
Beispiel #11
0
 def synchronizerNoConnection(self, computedGraphTestHarness):
     synchronizer = SharedStateSynchronizer.SharedStateSynchronizer()
     synchronizer.update()
 def setUp(self):
     self.sharedState = SharedStateTestHarness(inMemory=True)
     self.synchronizer = SharedStateSynchronizer.SharedStateSynchronizer()
     self.synchronizer.attachView(self.sharedState.newView())
     self.synchronizer.__enter__()