-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMemoryMapFile.hpp
More file actions
53 lines (43 loc) · 1.39 KB
/
Copy pathMemoryMapFile.hpp
File metadata and controls
53 lines (43 loc) · 1.39 KB
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
51
52
53
//
// MemoryMapFile.hpp
// Test
//
// Created by 周贺伟 on 2017/8/3.
// Copyright © 2017年 zhouhewei. All rights reserved.
//
#ifndef MemoryMapFile_hpp
#define MemoryMapFile_hpp
#include <stdio.h>
#include "IMemoryMapFile.h"
class CMemoryMapFile:public IMemoryMapFile
{
public:
CMemoryMapFile();
CMemoryMapFile(_IN_ const char* fileName, _IN_ long initFileSize);
virtual ~CMemoryMapFile();
public:
virtual long getWritePosition();
virtual bool setWritePosition(_IN_ long pos);
virtual bool writeData(_IN_ const void* buffer, _IN_ long size);
virtual bool writeData(_IN_ long startPosition, _IN_ const void* buffer, _IN_ long size);
virtual long getReadPosition();
virtual bool setReadPosition(_IN_ long pos);
virtual bool readData(_OUT_ void* buffer, _IN_ long size);
virtual bool readData(_IN_ long startPosition, _OUT_ void* buffer, _IN_ long size);
virtual long getCapacity();
virtual long getFileSize();
virtual const void* getRawMemory();
public:
bool MMOpen(_IN_ const char* fileName, _IN_ long initFileSize);
bool MMClose();
private:
bool reSizeFile(long new_size);
private:
int m_fd;
long m_capacity;
long m_size;
void* m_map_file_ptr;
char* m_file_write_ptr;
char* m_file_read_ptr;
};
#endif /* MemoryMapFile_hpp */