| 94 | |
| 95 | template<typename T, Function Fun> |
| 96 | static Array<Reference<T> > referenceData() |
| 97 | { |
| 98 | static Array<Reference<T> > data; |
| 99 | if (data.data == 0) { |
| 100 | FILE *file = std::fopen(filename<T, Fun>(), "rb"); |
| 101 | if (file) { |
| 102 | std::fseek(file, 0, SEEK_END); |
| 103 | const size_t size = std::ftell(file) / sizeof(Reference<T>); |
| 104 | std::rewind(file); |
| 105 | auto mem = new Reference<T>[size]; |
| 106 | static StaticDeleter<Reference<T> > _cleanup(data.data); |
| 107 | data.size = std::fread(mem, sizeof(Reference<T>), size, file); |
| 108 | data.data = mem; |
| 109 | std::fclose(file); |
| 110 | } else { |
| 111 | FAIL() << "the reference data " << filename<T, Fun>() << " does not exist in the current working directory."; |
| 112 | } |
| 113 | } |
| 114 | return data; |
| 115 | } |
| 116 | |
| 117 | //}}}1 |
| 118 | // vim: foldmethod=marker |
nothing calls this directly
no outgoing calls
no test coverage detected