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); }
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); }
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); }
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); }
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); }
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); }