#!/usr/bin/env python

from ZODB import FileStorage, DB
from persistent import Persistent
from BTrees.OOBTree import OOBTree
from BTrees.IOBTree import IOTreeSet
import transaction

class DummyObject(Persistent):
    pass

class MyStruct(Persistent):
    def __init__(self):
        self._idx = OOBTree()

    def index_obj(self, obj, number):

        if obj not in self._idx:
            self._idx[obj] = IOTreeSet()
            print number, self._idx[obj]
        self._idx[obj].add(number)


fs = FileStorage.FileStorage('/tmp/foo.fs')

db = DB(fs)

conn = db.open()

r = conn.root()
struct = r['test-data'] = MyStruct()

transaction.commit()
conn.close()


for i in xrange(0, 1000):
    conn = db.open()
    obj = DummyObject()
    struct.index_obj(obj, i)
    transaction.commit()
    conn.close()
