Beispiel #1
0
 def format_records(self, start, count, res_set, rec_syn):
     l = []
     for i in range(start - 1, start + count - 1):
         elt = res_set[i]
         elt_external = asn1.EXTERNAL()
         elt_external.direct_reference = zdefs.Z3950_RECSYN_SUTRS_ov
         elt_external.encoding = ('single-ASN1-type', elt)
         n = zdefs.NamePlusRecord()
         n.name = 'foo'  # XXX
         n.record = 'retrievalRecord', elt_external
         l.append(n)
     return l
Beispiel #2
0
 def format_one(self, rec, esn, syntax, next):
     elt_external = asn1.EXTERNAL()
     elt_external.direct_reference = zdefs.Z3950_RECSYN_SUTRS_ov
     elt_external.encoding = ('single-ASN1-type',
                              str(esn) + ': ' + str(rec))
     n = zdefs.NamePlusRecord()
     n.name = dbname
     n.record = ('retrievalRecord', elt_external)
     # we could call next(n) directly, but using reactor.callLater
     # helps to ensure there aren't any bugs which would be revealed
     # by running from callback context, and prevents stack overflow
     # for large Present requests.  Normally, I'd expect some kind of
     # async call to be required to fetch the data, so 'next' should
     # be triggered from a deferred callback.  (An errback should
     # correspond to a surrogate diagnostic.)
     if callLater:
         reactor.callLater(0.01, next, n)
     else:
         next(n)