NAME
src/pmc/cpointer.pmc - CPointer
DESCRIPTION
The CPointer PMC creates a PMC abstraction for a typed C pointer.
It is particularly used by the CallSignature PMC,
for the return values of a C-level PCC invocation using a CallSignature to pass the arguments and fetch the results.
Attributes
A CPointer PMC has two attributes:
- pointer A
- sig A string signature for the pointer. The possible signature values follow the standard defined for PCC.
void * pointer to an integer,
number,
string,
or PMC.
I a Parrot integer (INTVAL) N a Parrot number (FLOATVAL) S a Parrot string (STRING *) P a Parrot object (PMC *)
Vtable Functions
These are the vtable functions for the CPointer class.
- void init()Initializes the pointer object.
- void mark()Marks the signature as live. Also marks a STRING or PMC pointed to by the pointer.
- PMC *clone()Creates and returns a clone of the pointer.
- void *get_pointer()Returns the pointer.
- void set_pointer(void *)Sets the pointer.
- STRING *get_string_keyed_str(STRING *key)Returns the string signature.
- void set_string_keyed_str(STRING *key, STRING *value)Sets the string signature.
- INTVAL get_integer()Returns the integer value that the pointer points to (if the pointer is to an integer or PMC).
- void set_integer_native(INTVAL value)Sets the integer value that the pointer points to (if the pointer is to an integer or PMC).
- FLOATVAL get_number()Returns the floating point value that the pointer points to (if the pointer is to a number or PMC).
- void set_number_native(FLOATVAL value)Sets the floating point value that the pointer points to (if the pointer is to a number or PMC).
- STRING *get_string()Returns the Parrot string value that the pointer points to (if the pointer is to a string or PMC).
- void set_string_native(STRING *value)Sets the Parrot string value that the pointer points to (if the pointer is to a string or PMC).
- PMC *get_pmc()Returns the PMC value that the pointer points to (if the pointer is to a PMC).
- void set_pmc(PMC *value)Sets the PMC value that the pointer points to (if the pointer is to a PMC).
- INTVAL get_bool()Returns whether the pointer is not
- INTVAL is_same(PMC *pmc2)Returns whether the pointer has the same value as
NULL.
*pmc2.