ext (TokyoTyrant::RDB)

    # File tokyotyrant.rb, line 606
        def ext(name, key = "", value = "", opts = 0)
          name = _argstr(name)
          key = _argstr(key)
          value = _argstr(value)
          opts = _argnum(opts)
          if !@sock
            @ecode = EINVALID
            return nil
          end
          sbuf = [0xC8, 0x68, name.length, opts, key.length, value.length].pack("CCNNNN")
          sbuf += name + key + value
          if !_send(sbuf)
            @ecode = ESEND
            return nil
          end
          code = _recvcode
          if code == -1
            @ecode = ERECV
            return nil
          end
          if code != 0
            @ecode = EMISC
            return nil
          end
          vsiz = _recvint32
          if vsiz < 0
            @ecode = ERECV
            return nil
          end
          vbuf = _recv(vsiz)
          if !vbuf
            @ecode = ERECV
            return nil
          end
          return _retstr(vbuf)
        end