doc = {'payload': payload}
        self.db.save(doc)


class Create(Root):
    def render_GET(self, request):
        # blocking
        self.insert_doc()
        return "created:ok\n"

class Delete(Root):
    def render_GET(self, request):
        # blocking
        _couch.delete_db()
        return "deleted:ok\n"

class Count(Root):
    def render_GET(self, request):
        count = db.info()['doc_count']
        return "%s docs\n" % count

db = _couch.get_db()
Root.db = db

root = Create()
root.putChild('delete', Delete())
root.putChild('count', Count())
site = server.Site(root)
reactor.listenTCP(8080, site)
reactor.run()
def setup_db():
    global db
    db = _couch.get_db()
        _couch.delete_db()
        return "deleted:ok\n"

class Count(Root):
    @defer.inlineCallbacks
    def _get_count(self):
        info = yield db.infoDB('couch-benchmarks')
        count =  info['doc_count']
        defer.returnValue("%s docs\n" % count)
    
    def render_GET(self, request):
        d = self._get_count()
        d.addCallback(self._write_GET, request)
        return server.NOT_DONE_YET

db_sync = _couch.get_db()
db = CouchDB('localhost')
Root.db = db
Root.db_sync = db_sync

def create_db():
    d = db.createDB('couch-benchmarks')

    def del_and_create(_):
        d = db.deleteDB('couch-benchmarks')
        d.addCallback(lambda _: db.createDB('couch-benchmarks'))
        return d
    d.addErrback(del_and_create)
    d.addErrback(lambda f: log.err(f))

reactor.callWhenRunning(create_db)