From d9ed8e125e3b9678830047738c868eeb77e56488 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Fri, 9 Jan 2015 08:19:32 +0100 Subject: [PATCH] Move FileInfoTruncated to files package This is where it's used, and it clarifies that it's never used over the wire. --- message.go | 61 ------------------------------ message_xdr.go | 100 ------------------------------------------------- 2 files changed, 161 deletions(-) diff --git a/message.go b/message.go index 3129f3de..0d8de807 100644 --- a/message.go +++ b/message.go @@ -71,67 +71,6 @@ func (f FileInfo) HasPermissionBits() bool { return f.Flags&FlagNoPermBits == 0 } -func (f FileInfo) ToTruncated() FileInfoTruncated { - return FileInfoTruncated{ - Name: f.Name, - Flags: f.Flags, - Modified: f.Modified, - Version: f.Version, - LocalVersion: f.LocalVersion, - NumBlocks: uint32(len(f.Blocks)), - } -} - -// Used for unmarshalling a FileInfo structure but skipping the actual block list -type FileInfoTruncated struct { - Name string // max:8192 - Flags uint32 - Modified int64 - Version uint64 - LocalVersion uint64 - NumBlocks uint32 -} - -func (f FileInfoTruncated) String() string { - return fmt.Sprintf("File{Name:%q, Flags:0%o, Modified:%d, Version:%d, Size:%d, NumBlocks:%d}", - f.Name, f.Flags, f.Modified, f.Version, f.Size(), f.NumBlocks) -} - -func BlocksToSize(num uint32) int64 { - if num < 2 { - return BlockSize / 2 - } - return int64(num-1)*BlockSize + BlockSize/2 -} - -// Returns a statistical guess on the size, not the exact figure -func (f FileInfoTruncated) Size() int64 { - if f.IsDeleted() || f.IsDirectory() { - return 128 - } - return BlocksToSize(f.NumBlocks) -} - -func (f FileInfoTruncated) IsDeleted() bool { - return f.Flags&FlagDeleted != 0 -} - -func (f FileInfoTruncated) IsInvalid() bool { - return f.Flags&FlagInvalid != 0 -} - -func (f FileInfoTruncated) IsDirectory() bool { - return f.Flags&FlagDirectory != 0 -} - -func (f FileInfoTruncated) IsSymlink() bool { - return f.Flags&FlagSymlink != 0 -} - -func (f FileInfoTruncated) HasPermissionBits() bool { - return f.Flags&FlagNoPermBits == 0 -} - type BlockInfo struct { Offset int64 // noencode (cache only) Size uint32 diff --git a/message_xdr.go b/message_xdr.go index da13111c..fa7b5802 100644 --- a/message_xdr.go +++ b/message_xdr.go @@ -245,106 +245,6 @@ func (o *FileInfo) decodeXDR(xr *xdr.Reader) error { /* -FileInfoTruncated Structure: - - 0 1 2 3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Length of Name | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -/ / -\ Name (variable length) \ -/ / -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Flags | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| | -+ Modified (64 bits) + -| | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| | -+ Version (64 bits) + -| | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| | -+ Local Version (64 bits) + -| | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -| Num Blocks | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - -struct FileInfoTruncated { - string Name<8192>; - unsigned int Flags; - hyper Modified; - unsigned hyper Version; - unsigned hyper LocalVersion; - unsigned int NumBlocks; -} - -*/ - -func (o FileInfoTruncated) EncodeXDR(w io.Writer) (int, error) { - var xw = xdr.NewWriter(w) - return o.encodeXDR(xw) -} - -func (o FileInfoTruncated) MarshalXDR() ([]byte, error) { - return o.AppendXDR(make([]byte, 0, 128)) -} - -func (o FileInfoTruncated) MustMarshalXDR() []byte { - bs, err := o.MarshalXDR() - if err != nil { - panic(err) - } - return bs -} - -func (o FileInfoTruncated) AppendXDR(bs []byte) ([]byte, error) { - var aw = xdr.AppendWriter(bs) - var xw = xdr.NewWriter(&aw) - _, err := o.encodeXDR(xw) - return []byte(aw), err -} - -func (o FileInfoTruncated) encodeXDR(xw *xdr.Writer) (int, error) { - if l := len(o.Name); l > 8192 { - return xw.Tot(), xdr.ElementSizeExceeded("Name", l, 8192) - } - xw.WriteString(o.Name) - xw.WriteUint32(o.Flags) - xw.WriteUint64(uint64(o.Modified)) - xw.WriteUint64(o.Version) - xw.WriteUint64(o.LocalVersion) - xw.WriteUint32(o.NumBlocks) - return xw.Tot(), xw.Error() -} - -func (o *FileInfoTruncated) DecodeXDR(r io.Reader) error { - xr := xdr.NewReader(r) - return o.decodeXDR(xr) -} - -func (o *FileInfoTruncated) UnmarshalXDR(bs []byte) error { - var br = bytes.NewReader(bs) - var xr = xdr.NewReader(br) - return o.decodeXDR(xr) -} - -func (o *FileInfoTruncated) decodeXDR(xr *xdr.Reader) error { - o.Name = xr.ReadStringMax(8192) - o.Flags = xr.ReadUint32() - o.Modified = int64(xr.ReadUint64()) - o.Version = xr.ReadUint64() - o.LocalVersion = xr.ReadUint64() - o.NumBlocks = xr.ReadUint32() - return xr.Error() -} - -/* - BlockInfo Structure: 0 1 2 3