def set_namedarg(self, arg, value): bm = BufManager(ffi) arg = bm.new_cbuf(arg) value = bm.new_cbuf(value) rc = C.lcb_n1p_namedparam(self._lp, arg, len(arg), value, len(value)) if rc: raise pycbc_exc_lcb(rc)
def setoption(self, option, value): bm = BufManager(ffi) option = bm.new_cbuf(option) value = bm.new_cbuf(value) rc = C.lcb_n1p_setopt(self._lp, option, len(option), value, len(value)) if rc: raise pycbc_exc_lcb(rc)
def _do_schedule(parent, mres): bm = BufManager(ffi) cmd = ffi.new('lcb_CMDHTTP*') cmd.type = self._type cmd.method = method C._Cb_set_key(cmd, *bm.new_cbuf(path)) cmd.body, cmd.nbody = bm.new_cbuf(post_data) cmd.content_type = bm.new_cstr(content_type) rc = C.lcb_http3(parent._lcbh, mres._cdata, cmd) if rc: raise PyCBC.exc_lcb(rc, 'Scheduling HTTP request')
def __init__(self, parent, ddoc, view, options, _flags=0, mres=None): super(ViewResult, self).__init__(parent) self._ddoc = ddoc self._view = view self._bound_cb = ffi.callback(ROWCB_DECL, self._on_single_row) bm = BufManager(ffi) urlopts = ffi.NULL pypost = None cmd = ffi.new('lcb_CMDVIEWQUERY*') if options: in_uri, in_post = options._long_query_encoded # Note, encoded means URI/JSON encoded; not charset urlopts = bm.new_cstr(in_uri) if in_post and in_post != '{}': pypost = in_post C.lcb_view_query_initcmd( cmd, bm.new_cstr(self._ddoc), bm.new_cstr(self._view), urlopts, self._bound_cb) if pypost: cmd.postdata, cmd.npostdata = bm.new_cbuf(pypost) cmd.cmdflags |= _flags rc = C.lcb_view_query(self._instance, mres._cdata, cmd) if rc: raise pycbc_exc_lcb(rc)
def _schedule(self, parent, mres): bm = BufManager(ffi) urlopts = ffi.NULL pypost = None cmd = self._c_command if self._options: in_uri, in_post = self._options._long_query_encoded # Note, encoded means URI/JSON encoded; not charset urlopts = bm.new_cstr(in_uri) if in_post and in_post != '{}': pypost = in_post C.lcb_view_query_initcmd( cmd, bm.new_cstr(self._ddoc), bm.new_cstr(self._view), urlopts, self._bound_cb) if pypost: cmd.postdata, cmd.npostdata = bm.new_cbuf(pypost) if self._include_docs: cmd.cmdflags |= C.LCB_CMDVIEWQUERY_F_INCLUDE_DOCS self._c_command.handle = self._c_handle self._parent = parent rc = C.lcb_view_query(parent._lcbh, mres._cdata, self._c_command) if rc: raise pycbc_exc_lcb(rc)
def _schedule(self, parent, mres): bm = BufManager(ffi) urlopts = ffi.NULL pypost = None cmd = self._c_command if self._options: in_uri, in_post = self._options._long_query_encoded # Note, encoded means URI/JSON encoded; not charset urlopts = bm.new_cstr(in_uri) if in_post and in_post != '{}': pypost = in_post C.lcb_view_query_initcmd(cmd, bm.new_cstr(self._ddoc), bm.new_cstr(self._view), urlopts, self._bound_cb) if pypost: cmd.postdata, cmd.npostdata = bm.new_cbuf(pypost) if self._include_docs: cmd.cmdflags |= C.LCB_CMDVIEWQUERY_F_INCLUDE_DOCS self._c_command.handle = self._c_handle self._parent = parent rc = C.lcb_view_query(parent._lcbh, mres._cdata, self._c_command) if rc: raise pycbc_exc_lcb(rc)
def _vbmap(self, key): bm = BufManager(ffi) info_obj = ffi.new('lcb_cntl_vbinfo_t*') info_obj.v.v0.key, info_obj.v.v0.nkey = bm.new_cbuf(key) rc = C.lcb_cntl(self._lcbh, C.LCB_CNTL_GET, C.LCB_CNTL_VBMAP, info_obj) if rc: raise pycbc_exc_lcb(rc) return info_obj.v.v0.vbucket, info_obj.v.v0.server_index
def __run_stat(self, k, mres): bm = BufManager(ffi) if k: if not isinstance(k, basestring): raise pycbc_exc_args('Stats arguments must be strings only!') c_key, c_len = bm.new_cbuf(k) else: c_key, c_len = ffi.NULL, 0 C._Cb_set_key(self.c_command, c_key, c_len) rc = C.lcb_stats3(self.instance, mres._cdata, self.c_command) if rc: raise pycbc_exc_lcb(rc)
def __init__(self, parent, params, prepare, mres=None): super(N1qlResult, self).__init__(parent) self._bound_cb = ffi.callback( 'void(lcb_t,int,lcb_RESPN1QL*)', self._on_single_row) bm = BufManager(ffi) cmd = ffi.new('lcb_CMDN1QL*') cmd.query, cmd.nquery = bm.new_cbuf(params) cmd.callback = self._bound_cb if prepare: cmd.cmdflags |= C.LCB_CMDN1QL_F_PREPCACHE rc = C.lcb_n1ql_query(parent._lcbh, mres._cdata, cmd) if rc: raise pycbc_exc_lcb(rc)
def add_posarg(self, arg): bm = BufManager(ffi) arg = bm.new_cbuf(arg) rc = C.lcb_n1p_posparam(self._lp, arg, len(arg)) if rc: raise pycbc_exc_lcb(rc)
def setquery(self, query=None, type=C.LCB_N1P_QUERY_STATEMENT): bm = BufManager(ffi) query = bm.new_cbuf(query) rc = C.lcb_n1p_setquery(self._lp, bm.new_cstr(query), len(query), type) if rc: raise pycbc_exc_lcb(rc)