Documentation ¶
Overview ¶
Package protocol implements the Block Exchange Protocol.
Index ¶
- Constants
- Variables
- func HasPermissionBits(bits uint32) bool
- func IsDeleted(bits uint32) bool
- func IsDirectory(bits uint32) bool
- func IsInvalid(bits uint32) bool
- func TotalInOut() (uint64, uint64)
- type BlockInfo
- type ClusterConfigMessage
- type Connection
- type FileInfo
- func (o FileInfo) AppendXDR(bs []byte) []byte
- func (o *FileInfo) DecodeXDR(r io.Reader) error
- func (o FileInfo) EncodeXDR(w io.Writer) (int, error)
- func (o FileInfo) MarshalXDR() []byte
- func (f FileInfo) Size() (bytes int64)
- func (f FileInfo) String() string
- func (o *FileInfo) UnmarshalXDR(bs []byte) error
- type IndexMessage
- type Model
- type Node
- type NodeID
- type Option
- type Repository
- type RequestMessage
- type Statistics
Constants ¶
View Source
const ( FlagDeleted uint32 = 1 << 12 FlagInvalid = 1 << 13 FlagDirectory = 1 << 14 FlagNoPermBits = 1 << 15 )
View Source
const ()
View Source
const BlockSize = 128 * 1024
Variables ¶
View Source
var ( ErrClusterHash = fmt.Errorf("configuration error: mismatched cluster hash") ErrClosed = errors.New("connection closed") )
View Source
var LocalNodeID = NodeID{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
Functions ¶
func HasPermissionBits ¶ added in v0.8.10
func IsDirectory ¶ added in v0.8.10
func TotalInOut ¶ added in v0.8.10
Types ¶
type BlockInfo ¶
func (BlockInfo) MarshalXDR ¶ added in v0.6.0
func (*BlockInfo) UnmarshalXDR ¶ added in v0.6.0
type ClusterConfigMessage ¶ added in v0.8.0
type ClusterConfigMessage struct { ClientName string // max:64 ClientVersion string // max:64 Repositories []Repository // max:64 Options []Option // max:64 }
func (ClusterConfigMessage) AppendXDR ¶ added in v0.9.0
func (o ClusterConfigMessage) AppendXDR(bs []byte) []byte
func (*ClusterConfigMessage) DecodeXDR ¶ added in v0.8.0
func (o *ClusterConfigMessage) DecodeXDR(r io.Reader) error
func (ClusterConfigMessage) EncodeXDR ¶ added in v0.8.0
func (o ClusterConfigMessage) EncodeXDR(w io.Writer) (int, error)
func (ClusterConfigMessage) MarshalXDR ¶ added in v0.8.0
func (o ClusterConfigMessage) MarshalXDR() []byte
func (*ClusterConfigMessage) UnmarshalXDR ¶ added in v0.8.0
func (o *ClusterConfigMessage) UnmarshalXDR(bs []byte) error
type Connection ¶
type Connection interface { ID() NodeID Name() string Index(repo string, files []FileInfo) error IndexUpdate(repo string, files []FileInfo) error Request(repo string, name string, offset int64, size int) ([]byte, error) ClusterConfig(config ClusterConfigMessage) Statistics() Statistics }
func NewConnection ¶
type FileInfo ¶
type FileInfo struct { Name string // max:1024 Flags uint32 Modified int64 Version uint64 LocalVersion uint64 Blocks []BlockInfo // max:1000000 }
func (FileInfo) MarshalXDR ¶ added in v0.6.0
func (*FileInfo) UnmarshalXDR ¶ added in v0.6.0
type IndexMessage ¶ added in v0.6.0
func (IndexMessage) AppendXDR ¶ added in v0.9.0
func (o IndexMessage) AppendXDR(bs []byte) []byte
func (*IndexMessage) DecodeXDR ¶ added in v0.6.0
func (o *IndexMessage) DecodeXDR(r io.Reader) error
func (IndexMessage) EncodeXDR ¶ added in v0.6.0
func (o IndexMessage) EncodeXDR(w io.Writer) (int, error)
func (IndexMessage) MarshalXDR ¶ added in v0.6.0
func (o IndexMessage) MarshalXDR() []byte
func (*IndexMessage) UnmarshalXDR ¶ added in v0.6.0
func (o *IndexMessage) UnmarshalXDR(bs []byte) error
type Model ¶
type Model interface { // An index was received from the peer node Index(nodeID NodeID, repo string, files []FileInfo) // An index update was received from the peer node IndexUpdate(nodeID NodeID, repo string, files []FileInfo) // A request was made by the peer node Request(nodeID NodeID, repo string, name string, offset int64, size int) ([]byte, error) // A cluster configuration message was received ClusterConfig(nodeID NodeID, config ClusterConfigMessage) // The peer node closed the connection Close(nodeID NodeID, err error) }
type Node ¶ added in v0.8.0
func (Node) MarshalXDR ¶ added in v0.8.0
func (*Node) UnmarshalXDR ¶ added in v0.8.0
type NodeID ¶ added in v0.9.0
type NodeID [32]byte
func NewNodeID ¶ added in v0.9.0
NewNodeID generates a new node ID from the raw bytes of a certificate
func NodeIDFromBytes ¶ added in v0.9.0
func NodeIDFromString ¶ added in v0.9.0
func (*NodeID) MarshalText ¶ added in v0.9.0
func (NodeID) String ¶ added in v0.9.0
String returns the canonical string representation of the node ID
func (*NodeID) UnmarshalText ¶ added in v0.9.0
type Option ¶ added in v0.6.0
func (Option) MarshalXDR ¶ added in v0.6.0
func (*Option) UnmarshalXDR ¶ added in v0.6.0
type Repository ¶ added in v0.8.0
func (Repository) AppendXDR ¶ added in v0.9.0
func (o Repository) AppendXDR(bs []byte) []byte
func (Repository) EncodeXDR ¶ added in v0.8.0
func (o Repository) EncodeXDR(w io.Writer) (int, error)
func (Repository) MarshalXDR ¶ added in v0.8.0
func (o Repository) MarshalXDR() []byte
func (*Repository) UnmarshalXDR ¶ added in v0.8.0
func (o *Repository) UnmarshalXDR(bs []byte) error
type RequestMessage ¶ added in v0.6.0
type RequestMessage struct { Repository string // max:64 Name string // max:1024 Offset uint64 Size uint32 }
func (RequestMessage) AppendXDR ¶ added in v0.9.0
func (o RequestMessage) AppendXDR(bs []byte) []byte
func (*RequestMessage) DecodeXDR ¶ added in v0.6.0
func (o *RequestMessage) DecodeXDR(r io.Reader) error
func (RequestMessage) EncodeXDR ¶ added in v0.6.0
func (o RequestMessage) EncodeXDR(w io.Writer) (int, error)
func (RequestMessage) MarshalXDR ¶ added in v0.6.0
func (o RequestMessage) MarshalXDR() []byte
func (*RequestMessage) UnmarshalXDR ¶ added in v0.6.0
func (o *RequestMessage) UnmarshalXDR(bs []byte) error
Click to show internal directories.
Click to hide internal directories.