Esempio n. 1
0
        public override bool from_byte(byte[] buffer, ref long pos)
        {
            if (!base.from_byte(buffer, ref pos))
            {
                return(false);
            }
            if (!this.user.from_byte(buffer, ref pos))
            {
                return(false);
            }
            this.report_files_ready    = to_bool(buffer, ref pos);
            this.dcm_files_ready       = to_bool(buffer, ref pos);
            this.report_files_number   = Cmd.to_int(buffer, ref pos);
            this.dcm_files_number      = Cmd.to_int(buffer, ref pos);
            this.transfer_report_files = to_bool(buffer, ref pos);
            this.transfer_dcm_files    = to_bool(buffer, ref pos);

            this.report_file_contents = null;
            if (this.transfer_report_files)
            {
                this.report_file_contents = FileNameContentItem.to_contents(buffer, ref pos);
            }
            this.dcm_file_contents = null;
            if (this.transfer_dcm_files)
            {
                this.dcm_file_contents = FileNameContentItem.to_contents(buffer, ref pos);
            }

            this.printed_report_times = Cmd.to_int(buffer, ref pos);
            this.printed_dcm_times    = Cmd.to_int(buffer, ref pos);
            return(true);
        }
Esempio n. 2
0
 public override bool from_byte(byte[] buffer, ref long pos)
 {
     if (!base.from_byte(buffer, ref pos))
     {
         return(false);
     }
     this.ip   = Cmd.to_string(buffer, ref pos);
     this.port = Cmd.to_int(buffer, ref pos);
     return(true);
 }
Esempio n. 3
0
 public override bool from_byte(byte[] buffer, ref long pos)
 {
     if (!base.from_byte(buffer, ref pos))
     {
         return(false);
     }
     this.print_report     = Cmd.to_bool(buffer, ref pos);
     this.print_dcm        = Cmd.to_bool(buffer, ref pos);
     this.print_report_ack = Cmd.to_int(buffer, ref pos);
     this.print_dcm_ack    = Cmd.to_int(buffer, ref pos);
     return(true);
 }
Esempio n. 4
0
        public override bool from_byte(byte[] buffer, ref long pos)
        {
            if (!base.from_byte(buffer, ref pos))
            {
                return(false);
            }
            int size = Cmd.to_int(buffer, ref pos);

            this.ips = size > 0 ? new string[size] : null;
            for (int i = 0; i < size; i++)
            {
                this.ips[i] = Cmd.to_string(buffer, ref pos);
            }
            return(true);
        }
Esempio n. 5
0
        public static List <FileNameContentItem> to_contents(byte[] buffer, ref long pos)
        {
            List <FileNameContentItem> items = new List <FileNameContentItem>();
            int size = Cmd.to_int(buffer, ref pos);

            for (int i = 0; i < size; i++)
            {
                FileNameContentItem item = new FileNameContentItem();
                if (!item.from_byte(buffer, ref pos))
                {
                    return(null);
                }
                items.Add(item);
            }
            return(items);
        }
Esempio n. 6
0
        public static Cmd parse_cmd(byte[] buffer, long start_index, long length)
        {
            if (start_index + length > buffer.Count())
            {
                throw new Exception("命令长度不足.");
            }
            long    pos       = start_index;
            CmdType type      = (CmdType)Cmd.to_int(buffer, ref pos);
            string  type_name = type.ToString();

            type_name = string.Join("", type_name.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries));
            Type class_type = Type.GetType(type.GetType().Namespace + "." + type_name);
            Cmd  cmd        = Activator.CreateInstance(class_type) as Cmd;

            cmd.from_byte(buffer, ref start_index);
            return(cmd);
        }