func ReadMsg(r io.Reader) (interface{}, error) { msgType, err := readOneByte(r) if err != nil { return nil, err } var msg interface{} switch msgType { case getNetMsg: msg = new(GetMsg) case putNetMsg: msg = new(PutMsg) case delNetMsg: msg = new(DelMsg) case getIdxNetMsg: msg = new(GetIdxMsg) default: return nil, fmt.Errorf("unrecognized message type") } err = util.ReadObject(r, msg) if err != nil { return nil, err } return reflect.ValueOf(msg).Elem().Interface(), nil }
func ReadIdx(r io.Reader) (map[string]FileInfo, error) { var index map[string]FileInfo err := util.ReadObject(r, &index) if err != nil { return nil, err } return index, nil }