Rename End_of_file variable, implement platform indepenent memory_map.go

This commit is contained in:
j.laycock 2019-09-04 14:24:17 +01:00
parent 9aa0859697
commit cc756ddd79
4 changed files with 28 additions and 9 deletions

View file

@ -2,7 +2,10 @@
package memory_map
import "os"
import (
"fmt"
"os"
)
type MemoryBuffer struct {
aligned_length uint64
@ -17,7 +20,23 @@ type MemoryMap struct {
file_memory_map_handle uintptr
write_map_views []MemoryBuffer
max_length uint64
End_Of_File int64
End_of_file int64
}
var FileMemoryMap = make(map[string]MemoryMap)
var FileMemoryMap = make(map[string]*MemoryMap)
func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
}
func (mMap *MemoryMap) ReadMemory(offset uint64, length uint64) (MemoryBuffer, error) {
return MemoryBuffer{}, fmt.Errorf("Memory Map not implemented for this platform")
}
func (mem_buffer *MemoryBuffer) ReleaseMemory() {
}
func (mMap *MemoryMap) DeleteFileAndMemoryMap() {
}

View file

@ -24,7 +24,7 @@ type MemoryMap struct {
file_memory_map_handle uintptr
write_map_views []MemoryBuffer
max_length uint64
End_Of_File int64
End_of_file int64
}
var FileMemoryMap = make(map[string]*MemoryMap)
@ -51,7 +51,7 @@ func (mMap *MemoryMap) CreateMemoryMap(file *os.File, maxlength uint64) {
mMap.file_memory_map_handle = uintptr(file_memory_map_handle)
mMap.write_map_views = make([]MemoryBuffer, 0, maxlength/chunk_size)
mMap.max_length = maxlength
mMap.End_Of_File = -1
mMap.End_of_file = -1
}
}
@ -103,8 +103,8 @@ func (mMap *MemoryMap) WriteMemory(offset uint64, length uint64, data []byte) {
}
}
if mMap.End_Of_File < int64(offset+length-1) {
mMap.End_Of_File = int64(offset + length - 1)
if mMap.End_of_file < int64(offset+length-1) {
mMap.End_of_file = int64(offset + length - 1)
}
}

View file

@ -145,7 +145,7 @@ func (n *Needle) Append(w *os.File, version Version) (offset uint64, size uint32
return
}
} else {
offset = uint64(mMap.End_Of_File + 1)
offset = uint64(mMap.End_of_file + 1)
}
bytesToWrite, size, actualSize, err := n.prepareWriteBuffer(version)

View file

@ -75,7 +75,7 @@ func (v *Volume) maybeWriteSuperBlock() error {
mMap, exists := memory_map.FileMemoryMap[v.dataFile.Name()]
if exists {
if mMap.End_Of_File == -1 {
if mMap.End_of_file == -1 {
v.SuperBlock.version = needle.CurrentVersion
mMap.WriteMemory(0, uint64(len(v.SuperBlock.Bytes())), v.SuperBlock.Bytes())
}