template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
class MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >
Definition at line 141 of file MemoryMapArray.h.
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::MemoryMapArray |
( |
| ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::~MemoryMapArray |
( |
| ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| void MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::constructorClear |
( |
| ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| int MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::create |
( |
const char * | file, |
|
|
indexT | elementCount, |
|
|
int | optionalHeaderCount = 0 ) |
|
inline |
Create a vector with elementCount memebers.
Does administrative setup of the header and populating this class members. User will need to finish populating the contents of the metaData and data sections.
If file==NULL, the underlying allocation is done via malloc(), so that the results of write access to this vecor are not saved in a file.
If file!=NULL, a file will be created on disk, and all write accesses done via the method ::set will be persistent in that file.
Definition at line 208 of file MemoryMapArray.h.
209 {
215 {
217 buf <<
file <<
": failed to create file";
218 errorStr =
buf.str();
219 close();
221 }
223 header->constructorClear();
229
233 if (
env) header->setCreationUser(
env);
235#if defined(_WIN32)
237#else
239#endif
241 return 0;
242 }
virtual bool create(const char *file, size_t size)
create the memory mapped file on disk
Referenced by MemoryMapArray< uint32_t, genomeIndex_t, UMFA_COOKIE, UMFA_VERSION, PackedAccess_4Bit, PackedAssign_4Bit, Packed4BitElementCount2Bytes, genomeSequenceMmapHeader >::create(), and GenomeSequence::loadDBSNP().
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| int MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::create |
( |
indexT | elementCount, |
|
|
int | optionalHeaderCount = 0 ) |
|
inline |
allow anonymous (malloc) create.
we do this when we don't expect to save the results.
The single use case so far is in GenomeSequence::populateDBSNP.
Definition at line 250 of file MemoryMapArray.h.
251 {
253 }
int create(const char *file, indexT elementCount, int optionalHeaderCount=0)
Create a vector with elementCount memebers.
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| void MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::debugPrint |
( |
FILE * | f | ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| size_t MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::getElementCount |
( |
| ) |
const |
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| const std::string & MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::getErrorString |
( |
| ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| arrayHeaderClass & MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::getHeader |
( |
| ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| bool MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::open |
( |
const char * | file, |
|
|
int | flags = O_RDONLY ) |
|
inlinevirtual |
open a previously created mapped vector
useMemoryMapFlag will determine whether it uses mmap() or malloc()/read() to populate the memory
Reimplemented from MemoryMap.
Definition at line 269 of file MemoryMapArray.h.
270 {
273 {
276 errorStr =
buf.str();
277 return true;
278 }
282 {
284 buf <<
file <<
": wrong type of file (expected type "
285 <<
cookieVal <<
" but got " << header->typeCookie <<
")";
286 errorStr =
buf.str();
287
288 close();
289 return true;
290 }
292 {
294 buf <<
file <<
": wrong version of file (expected version "
295 <<
versionVal <<
" but got " << header->typeVersion <<
")";
296 errorStr =
buf.str();
297
298 close();
299 return true;
300 }
301 return false;
302 }
virtual bool open(const char *file, int flags=O_RDONLY)
open a previously created mapped vector
Referenced by GenomeSequence::loadDBSNP().
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| elementT MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::operator[] |
( |
indexT | i | ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| void MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::set |
( |
indexT | i, |
|
|
elementT | v ) |
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| void MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::setContentCookie |
( |
uint32_t | c | ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| void MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::setContentVersion |
( |
uint32_t | v | ) |
|
|
inline |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| char* MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::data |
|
protected |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| std::string MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::errorStr |
|
protected |
template<class elementT, typename indexT, unsigned int cookieVal, unsigned int versionVal, elementT accessorFunc, void setterFunc, size_t elementCount2BytesFunc, class arrayHeaderClass>
| arrayHeaderClass* MemoryMapArray< elementT, indexT, cookieVal, versionVal, accessorFunc, setterFunc, elementCount2BytesFunc, arrayHeaderClass >::header |
|
protected |