Esempio n. 1
0
 def _delete(self, skip_free=False):
     if not self.__o:
         return
     if self._del and skip_free:
         ffi.gc(self.__o, None)
     self.__o = None
     self.__owner = None
     self.__references = None
Esempio n. 2
0
 def log(self):
     yield from sq_iterator(
         ffi.gc(
             lib.sq_mapping_log(self.context().ref(), self.ref()),
             lib.sq_log_iter_free),
         lib.sq_log_iter_next,
         lambda x: Log(x, context=self.context()))
Esempio n. 3
0
 def log(cls, ctx):
     yield from sq_iterator(
         ffi.gc(
             lib.sq_store_server_log(ctx.ref()),
             lib.sq_log_iter_free),
         lib.sq_log_iter_next,
         lambda x: Log(x, context=ctx))
Esempio n. 4
0
 def ref_replace(self, new, owner=None, references=None):
     old = self.ref_consume()
     if self._del and owner == None:
         # There is a destructor and We own the referenced object
         # new.
         self.__o = ffi.gc(new, self._del)
     else:
         self.__o = new
     self.__owner = owner
     self.__references = references
     return old
Esempio n. 5
0
    def list_keys(cls, ctx):
        def next_fn(i):
            fpp = ffi.new("pgp_fingerprint_t[1]")
            key = lib.sq_key_iter_next(i, fpp)
            if key == ffi.NULL:
                return ffi.NULL
            else:
                return (Fingerprint(fpp[0], ctx), Key(key, ctx))

        yield from sq_iterator(
            ffi.gc(lib.sq_store_list_keys(ctx.ref()), lib.sq_key_iter_free),
            next_fn)
Esempio n. 6
0
    def iter(self):
        def next_fn(i):
            labelp = ffi.new("char *[1]")
            fpp = ffi.new("pgp_fingerprint_t[1]")
            binding = lib.sq_binding_iter_next(i, labelp, fpp)
            if binding == ffi.NULL:
                return ffi.NULL
            else:
                return (_str(labelp[0]), Fingerprint(fpp[0], self.context()),
                        Binding(binding, self.context()))

        yield from sq_iterator(
            ffi.gc(lib.sq_mapping_iter(self.context().ref(), self.ref()),
                   lib.sq_binding_iter_free), next_fn)
Esempio n. 7
0
 def log(self):
     yield from sq_iterator(
         ffi.gc(lib.sq_key_log(self.context().ref(), self.ref()),
                lib.sq_log_iter_free), lib.sq_log_iter_next)
Esempio n. 8
0
 def __init__(self, o):
     self.__o = ffi.gc(o, lib.pgp_error_free)
     super(SQError,
           self).__init__(sq_str(lib.pgp_error_to_string(self.__o)))