public RFSCommHeader(RCS_OP op, int did, long offset, int size)
 {
     optype       = op;
     payload_size = (op == RCS_OP.READ_REPLY) ? size : 0;
     driveid      = did;
     driveoffset  = offset;
     datasize     = size;
 }
 public void bytestream_to_headerobj(byte[] buffer, int offset)
 {
     optype       = RCS_OP.NO_OP + DEFSX.get_int(buffer, offset + 0);
     payload_size = DEFSX.get_int(buffer, offset + 4);
     driveid      = DEFSX.get_int(buffer, offset + 8);
     driveoffset  = DEFSX.get_long(buffer, offset + 12);
     datasize     = DEFSX.get_int(buffer, offset + 20);
     seq_num      = DEFSX.get_long(buffer, offset + 24);
 }
 private void Prepare_Header2(byte[] buf, RCS_OP op, int did, long offset, int size, long seqn)
 {
     for (int i = 0; i < buf.Length; i++)
     {
         buf[i] = 0;
     }
     switch (op)
     {
     case RCS_OP.NO_OP:
     case RCS_OP.CONNECT_ACK_FAIL:
     case RCS_OP.CONNECT_ACK_OKAY:
     case RCS_OP.READ_REPLY:
     case RCS_OP.WRITE_ACK:
         RFSCommHeader hobj = new RFSCommHeader(op, did, offset, size);
         hobj.seq_num = seqn;
         hobj.headerobj_to_bytestream(buf, 0);
         break;
         //assert otherwize
     }
 }
        private long Prepare_Header(byte[] buf, RCS_OP op, int did, long offset, int size)
        {
            long retval = seq_num++;

            switch (op)
            {
            case RCS_OP.NO_OP:
            case RCS_OP.CONNECT:
            case RCS_OP.READ:
            case RCS_OP.WRITE:
            case RCS_OP.DISCONNECT:
            case RCS_OP.WRITE_PUNCH_HOLE:
                RFSCommHeader hobj = new RFSCommHeader(op, did, offset, size);
                hobj.seq_num = retval;
                hobj.headerobj_to_bytestream(buf, 0);
                break;
                //assert otherwize
            }
            return(retval);
        }
 public void bytestream_to_headerobj(byte[] buffer, int offset)
 {
     optype = RCS_OP.NO_OP + DEFS.get_int(buffer, offset + 0);
     payload_size = DEFS.get_int(buffer, offset + 4);
     driveid = DEFS.get_int(buffer, offset + 8);
     driveoffset = DEFS.get_long(buffer, offset + 12);
     datasize = DEFS.get_int(buffer, offset + 20);
     seq_num = DEFS.get_long(buffer, offset + 24);
 }
 public RFSCommHeader(RCS_OP op, int did, long offset, int size)
 {
     optype = op;
     payload_size = (op == RCS_OP.WRITE)?size:0;
     driveid = did;
     driveoffset = offset;
     datasize = size;
 }
 private long Prepare_Header(byte[] buf, RCS_OP op, int did, long offset, int size)
 {
     long retval = seq_num++;
     switch (op)
     {
         case RCS_OP.NO_OP:
         case RCS_OP.CONNECT:
         case RCS_OP.READ:
         case RCS_OP.WRITE:
         case RCS_OP.DISCONNECT:
         case RCS_OP.WRITE_PUNCH_HOLE:
             RFSCommHeader hobj = new RFSCommHeader(op, did, offset, size);
             hobj.seq_num = retval;
             hobj.headerobj_to_bytestream(buf, 0);
             break;
         //assert otherwize
     }
     return retval;
 }