Index: third_party/twisted_8_1/twisted/persisted/journal/rowjournal.py |
diff --git a/third_party/twisted_8_1/twisted/persisted/journal/rowjournal.py b/third_party/twisted_8_1/twisted/persisted/journal/rowjournal.py |
deleted file mode 100644 |
index 0246222d6b086c4081f10f811c79306acc311754..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/persisted/journal/rowjournal.py |
+++ /dev/null |
@@ -1,99 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-# |
- |
-"""Journal using twisted.enterprise.row RDBMS support. |
- |
-You're going to need the following table in your database:: |
- |
- | CREATE TABLE journalinfo |
- | ( |
- | commandIndex int |
- | ); |
- | INSERT INTO journalinfo VALUES (0); |
- |
-""" |
- |
-from __future__ import nested_scopes |
- |
-# twisted imports |
-from twisted.internet import defer |
- |
-# sibling imports |
-import base |
- |
- |
-# constants for command list |
-INSERT, DELETE, UPDATE = range(3) |
- |
- |
-class RowJournal(base.Journal): |
- """Journal that stores data 'snapshot' in using twisted.enterprise.row. |
- |
- Use this as the reflector instead of the original reflector. |
- |
- It may block on creation, if it has to run recovery. |
- """ |
- |
- def __init__(self, log, journaledService, reflector): |
- self.reflector = reflector |
- self.commands = [] |
- self.syncing = 0 |
- base.Journal.__init__(self, log, journaledService) |
- |
- def updateRow(self, obj): |
- """Mark on object for updating when sync()ing.""" |
- self.commands.append((UPDATE, obj)) |
- |
- def insertRow(self, obj): |
- """Mark on object for inserting when sync()ing.""" |
- self.commands.append((INSERT, obj)) |
- |
- def deleteRow(self, obj): |
- """Mark on object for deleting when sync()ing.""" |
- self.commands.append((DELETE, obj)) |
- |
- def loadObjectsFrom(self, tableName, parentRow=None, data=None, whereClause=None, forceChildren=0): |
- """Flush all objects to the database and then load objects.""" |
- d = self.sync() |
- d.addCallback(lambda result: self.reflector.loadObjectsFrom( |
- tableName, parentRow=parentRow, data=data, whereClause=whereClause, |
- forceChildren=forceChildren)) |
- return d |
- |
- def sync(self): |
- """Commit changes to database.""" |
- if self.syncing: |
- raise ValueError, "sync already in progress" |
- comandMap = {INSERT : self.reflector.insertRowSQL, |
- UPDATE : self.reflector.updateRowSQL, |
- DELETE : self.reflector.deleteRowSQL} |
- sqlCommands = [] |
- for kind, obj in self.commands: |
- sqlCommands.append(comandMap[kind](obj)) |
- self.commands = [] |
- if sqlCommands: |
- self.syncing = 1 |
- d = self.reflector.dbpool.runInteraction(self._sync, self.latestIndex, sqlCommands) |
- d.addCallback(self._syncDone) |
- return d |
- else: |
- return defer.succeed(1) |
- |
- def _sync(self, txn, index, commands): |
- """Do the actual database synchronization.""" |
- for c in commands: |
- txn.execute(c) |
- txn.update("UPDATE journalinfo SET commandIndex = %d" % index) |
- |
- def _syncDone(self, result): |
- self.syncing = 0 |
- return result |
- |
- def getLastSnapshot(self): |
- """Return command index of last snapshot.""" |
- conn = self.reflector.dbpool.connect() |
- cursor = conn.cursor() |
- cursor.execute("SELECT commandIndex FROM journalinfo") |
- return cursor.fetchall()[0][0] |