IoObject *IoTokyoCabinetCursor_put(IoObject *self, IoObject *locals, IoMessage *m) { /*doc TokyoCabinetCursor put(value) Sets the value at the current cursor postion. Returns self. */ IoSeq *value = IoMessage_locals_seqArgAt_(m, locals, 0); IOASSERT(TokyoCabinetCursor(self), "invalid TokyoCabinetCursor"); IOASSERT(tcbdbcurput(TokyoCabinetCursor(self), (const char *)IoSeq_rawBytes(value), IoSeq_rawSizeInBytes(value), BDBCPCURRENT), tcbdberrmsg(tcbdbecode(TokyoCabinet(self)))); return self; }
IoObject *IoTokyoCabinetPrefixCursor_first(IoObject *self, IoObject *locals, IoMessage *m) { /*doc TokyoCabinetPrefixCursor first Move cursor to first record. Returns self */ IoSeq *prefix = IoObject_getSlot_(self, IOSYMBOL("prefix")); IOASSERT(ISSEQ(prefix), "prefix must be a sequence"); IOASSERT(TokyoCabinetPrefixCursor(self), "invalid TokyoCabinetPrefixCursor"); tcbdbcurjump(TokyoCabinetPrefixCursor(self), (const void *)IoSeq_rawBytes(prefix), (int)IoSeq_rawSizeInBytes(prefix)); if(!IoTokyoCabinetPrefixCursor_keyBeginsWithPrefix_(self, prefix)) { tcbdbcurnext(TokyoCabinetPrefixCursor(self)); } return IOBOOL(self, IoTokyoCabinetPrefixCursor_keyBeginsWithPrefix_(self, prefix)); }
IoObject *IoTokyoCabinetPrefixCursor_jump(IoObject *self, IoObject *locals, IoMessage *m) { /*doc TokyoCabinetPrefixCursor jump(key) Move cursor to record before key. Returns self */ IoSeq *key = IoMessage_locals_seqArgAt_(m, locals, 0); IOASSERT(TokyoCabinetPrefixCursor(self), "invalid TokyoCabinetPrefixCursor"); return IOBOOL(self, tcbdbcurjump(TokyoCabinetPrefixCursor(self), (const void *)IoSeq_rawBytes(key), (int)IoSeq_rawSizeInBytes(key))); }