pkg/lockedfile/lockedfile.go (22 lines of code) (raw):

// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. package lockedfile import ( "time" ) type ILockedFile interface { ReadLockedFile() ([]byte, error) WriteLockedFile(bytes []byte) error Close() error } func New(filePath string, timeout time.Duration) (lockedFile ILockedFile, err error) { metadata := Metadata{} lockedFile, err = newInner(filePath, timeout, &metadata) if err != nil { return } err = metadata.updateAndWriteMetadata(lockedFile, updateOpenTime) return } func (self *lockedFile) Close() error { self.metadata.updateAndWriteMetadata(self, updateCloseTime) return self.closeInner() }