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
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)