Пример #1
0
        internal object getObject(Connection.CLICommand cmd, int n)
        {
            if (stmt == null)
            {
                throw new CliError("ObjectSet was aleady closed");
            }
            if (stmt.con == null)
            {
                throw new CliError("Statement was closed");
            }
            ComBuffer buf = new ComBuffer(cmd, stmt.stmtId);

            if (cmd == Connection.CLICommand.cli_cmd_skip)
            {
                buf.putInt(n);
            }
            stmt.con.send(buf);
            buf.reset(4);
            stmt.con.receive(buf, 4);
            int len = buf.getInt();

            if (len == (int)Connection.CLIStatus.cli_not_found)
            {
                return(null);
            }
            else if (len <= 0)
            {
                throw new CliError("Failed to get object");
            }
            buf.reset(len - 4);
            stmt.con.receive(buf, len - 4);
            currOid = buf.getInt();
            if (currOid == 0)
            {
                return(null);
            }
            updated = false;
            return(currObj = stmt.tableDesc.readObject(buf));
        }
Пример #2
0
        internal void receive(ComBuffer com, int len)
        {
            com.reset(len);
            int offs = 0;

            while (len > 0)
            {
                int rc = socket.Receive(com.buf, offs, len, SocketFlags.None);
                if (rc < 0)
                {
                    throw new CliError("Failed to read response");
                }
                len  -= rc;
                offs += rc;
            }
        }
Пример #3
0
 internal void receive(ComBuffer com, int len)
 {
     com.reset(len);
     int offs = 0;
     while (len > 0) {
     int rc = socket.Receive(com.buf, offs, len, SocketFlags.None);
     if (rc < 0) {
         throw new CliError("Failed to read response");
     }
     len -= rc;
     offs += rc;
     }
 }
Пример #4
0
 internal object getObject(Connection.CLICommand cmd, int n)
 {
     if (stmt == null) {
     throw new CliError("ObjectSet was aleady closed");
     }
     if (stmt.con == null) {
     throw new CliError("Statement was closed");
     }
     ComBuffer buf = new ComBuffer(cmd, stmt.stmtId);
     if (cmd == Connection.CLICommand.cli_cmd_skip) {
     buf.putInt(n);
     }
     stmt.con.send(buf);
     buf.reset(4);
     stmt.con.receive(buf, 4);
     int len = buf.getInt();
     if (len == (int)Connection.CLIStatus.cli_not_found) {
     return null;
     } else if (len <= 0) {
     throw new CliError("Failed to get object");
     }
     buf.reset(len-4);
     stmt.con.receive(buf, len-4);
     currOid = buf.getInt();
     if (currOid == 0) {
     return null;
     }
     updated = false;
     return currObj = stmt.tableDesc.readObject(buf);
 }