NAME
src/pmc/mappedbytearray.pmc - Mapped byte array
DESCRIPTION
A memory mapped file or shared memory segment accesible as array of bytes.
Bare minimal functionality available, only for posix platforms (tested on linux).
Vtable Functions
init()
Initialize without doing any mapping.
init_pmc(PMC *init)
The argument must be a String PMC with a file name.
Maps the whole file.Other options still not available.
destroy()
Free all resources used.
get_bool()
Return true if active,
false otherwise.
elements()
Return the size of the mapped area.
get_integer_keyed_int(INTVAL pos)
Get the byte at pos.
set_integer_keyed_int(INTVAL pos, INTVAL value)
Set the byte at pos to value.
Methods
supported()
Return 0 if file mapping is not supported,
non zero otherwise.
open(STRING *filename, STRING *mode :optional)
Map a file by its name.
The mode argument can be "r",
"w" or "rw",
"r" is assumed if omitted.
close()
Close the mapping.
Return 0 if the mapping was opened aand the unmap operation does not fail,
non zero otherwise.
get_string(INTVAL pos, INTVAL bytelength, STRING *encodingname)
Get a string from the buffer content with the specified encoding.
get_utf8(INTVAL pos, INTVAL length)
Get a utf8 string from the buffer content with the specified lenght in codepoints.
Helper functions
static void unavailable(PARROT_INTERP, const char *msg)
Throws appropiately for functionality not available in the current platform.
static void * mapfromfilehandle(PIOHANDLE handle, unsigned long size, int flag)
Maps a file by its OS handle.
static void * mapfromfilename(PARROT_INTERP, STRING *name, unsigned long *size, int flag)
Maps a file by its filename,
throw if the file can't be opened.
static STRING * build_string(PARROT_INTERP, const unsigned char *content, INTVAL size, const STR_VTABLE *encoding)
Build a string from the buffer content with the encoding specified.