File: file.go

package info (click to toggle)
golang-github-cznic-fileutil 0.0~git20150708.0.1c9c88f-1~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 316 kB
  • sloc: makefile: 21
file content (50 lines) | stat: -rw-r--r-- 1,655 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (c) 2011 CZ.NIC z.s.p.o. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// blame: jnml, labs.nic.cz

package storage

import (
	"os"
)

// FileAccessor is the concrete type returned by NewFile and OpenFile.
type FileAccessor struct {
	*os.File
}

// Implementation of Accessor.
func (f *FileAccessor) BeginUpdate() error { return nil }

// Implementation of Accessor.
func (f *FileAccessor) EndUpdate() error { return nil }

// NewFile returns an Accessor backed by an os.File named name, It opens the
// named file with specified flag (os.O_RDWR etc.) and perm, (0666 etc.) if
// applicable.  If successful, methods on the returned Accessor can be used for
// I/O.  It returns the Accessor and an Error, if any.
//
// NOTE: The returned Accessor implements BeginUpdate and EndUpdate as a no op.
func NewFile(name string, flag int, perm os.FileMode) (store Accessor, err error) {
	var f FileAccessor
	if f.File, err = os.OpenFile(name, flag, perm); err == nil {
		store = &f
	}
	return
}

// OpenFile returns an Accessor backed by an existing os.File named name, It
// opens the named file with specified flag (os.O_RDWR etc.) and perm, (0666
// etc.) if applicable.  If successful, methods on the returned Accessor can be
// used for I/O.  It returns the Accessor and an Error, if any.
//
// NOTE: The returned Accessor implements BeginUpdate and EndUpdate as a no op.
func OpenFile(name string, flag int, perm os.FileMode) (store Accessor, err error) {
	var f FileAccessor
	if f.File, err = os.OpenFile(name, flag, perm); err == nil {
		store = &f
	}
	return
}