载入中...
搜索中...
未找到
FileData.cpp
浏览该文件的文档.
1
2#include "FileData.h"
3
4#include <iostream>
5#include <limits>
6#include <cstring>
7
8namespace eve {
9namespace filesystem {
10
11FileData::FileData(const std::string &filename, uint64_t size) : data(nullptr), filename(filename), size((size_t)size) {
12 try {
13 data = new uint8_t[size];
14 } catch (std::bad_alloc &) {
15 throw eve::Exception("Out of memory.");
16 }
17
18 size_t dotpos = filename.rfind('.');
19
20 if (dotpos != std::string::npos) {
21 extension = filename.substr(dotpos + 1);
22 name = filename.substr(0, dotpos);
23 } else
24 name = filename;
25}
26
28 : data(nullptr), filename(c.filename), size(c.size), extension(c.extension), name(c.name) {
29 try {
30 data = new uint8_t[size];
31 } catch (std::bad_alloc &) {
32 throw eve::Exception("Out of memory.");
33 }
34 memcpy(data, c.data, size);
35}
36
37FileData::~FileData() { delete[] data; }
38
39FileData *FileData::clone() const { return new FileData(*this); }
40
41
42} // namespace filesystem
43} // namespace eve
uint32_t c
Light2D::Data * data
const char * name
Definition RockMesh.cpp:21
Data buffer paired with a filename (used for type identification).
Definition FileData.h:12
FileData(const std::string &filename, uint64_t size)
Allocates a buffer of the given size for the named file.
Definition FileData.cpp:11
FileData * clone() const
Implements eve::Data.
Definition FileData.cpp:39
Definition Build.cpp:11