Author: allison Date: Sat Mar 31 20:41:43 2007 New Revision: 17914 Modified: trunk/docs/pdds/draft/pdd04_datatypes.pod
Log: [pdd]: Move the monolithic list of vtable names where it belongs: in the Datatypes PDD. Modified: trunk/docs/pdds/draft/pdd04_datatypes.pod ============================================================================== --- trunk/docs/pdds/draft/pdd04_datatypes.pod (original) +++ trunk/docs/pdds/draft/pdd04_datatypes.pod Sat Mar 31 20:41:43 2007 @@ -199,6 +199,382 @@ more) types of PMC, while particular Python datatypes will map onto different types of PMC. +=head2 VTABLE OVERLOADING + +PMCs may declare vtable methods. The following list details the raw method names: + +=over 4 + +=item init + +Called when an object is first created. + +=item init_pmc + +Alternative entry point called when an object is first created. Accepts a PMC +parameter used to initialize the given object. Interpretation of the PMC is +PMC-specific. + +NOTE: It is strongly suggested that init_pmc(PMCNULL) be equivalent to +init(), though there will of necessity be exceptions. + +=item morph + +=item mark + +Called when the DOD is tracing live PMCs. If this method is called then the +code must mark all strings and PMCs that it contains as live, otherwise they +may be collected. + +This method is only called if the PMC is flagged as having a special mark +routine, and is not necessary for normal objects. + +=item destroy + +Called when the PMC is destroyed. This method is only called if the PMC is +marked as having an active finalizer. + +=item clone + +Clone a PMC. + +=item getprop + +=item setprop + +=item delprop + +=item getprops + +=item type + +=item type_keyed + +=item type_keyed_int + +=item type_keyed_str + +=item subtype + +=item name + +=item find_method + +=item get_integer + +Return the integer value of the object + +=item get_integer_keyed + +=item get_integer_keyed_int + +=item get_integer_keyed_str + +=item get_number + +Return the floating-point value of the object + +=item get_number_keyed + +=item get_number_keyed_int + +=item get_number_keyed_str + +=item get_bignum + +Return the extended precision numeric value of the PMC + +=item get_string + +Return the string value of the PMC + +=item get_string_keyed + +=item get_string_keyed_int + +=item get_string_keyed_str + +=item get_bool + +Return the true/false value of the PMC + +=item get_bool_keyed + +=item get_bool_keyed_int + +=item get_bool_keyed_str + +=item get_pmc + +Return the PMC for this PMC. + +=item get_pmc_keyed + +=item get_pmc_keyed_int + +=item get_pmc_keyed_str + +=item get_pointer + +=item get_pointer_keyed + +=item get_pointer_keyed_int + +=item get_pointer_keyed_str + +=item set_integer_native + +Set the integer value of this PMC + +=item set_integer_same + +=item set_integer_keyed + +=item set_integer_keyed_int + +=item set_integer_keyed_str + +=item set_number_native + +Set the floating-point value of this PMC + +=item set_number_same + +=item set_number_keyed + +=item set_number_keyed_int + +=item set_number_keyed_str + +=item set_bignum_int + +Set the extended-precision value of this PMC + +=item set_string_native + +Set the string value of this PMC + +=item set_string_same + +=item set_string_keyed + +=item set_string_keyed_int + +=item set_string_keyed_str + +=item set_bool + +Set the true/false value of this PMC + +=item assign_pmc + +Set the value to the value of the passed in + +=item set_pmc + +Make the PMC refer to the PMC passed in + +=item set_pmc_keyed + +=item set_pmc_keyed_int + +=item set_pmc_keyed_str + +=item set_pointer + +=item set_pointer_keyed + +=item set_pointer_keyed_int + +=item set_pointer_keyed_str + +=item elements + +Return the number of elements in the PMC, if the PMC is treated as an +aggregate. + +=item pop_integer + +=item pop_float + +=item pop_string + +=item pop_pmc + +=item push_integer + +=item push_float + +=item push_string + +=item push_pmc + +=item shift_integer + +=item shift_float + +=item shift_string + +=item shift_pmc + +=item unshift_integer + +=item unshift_float + +=item unshift_string + +=item unshift_pmc + +=item splice + +=item add + +=item add_int + +=item add_float + +=item subtract + +=item subtract_int + +=item subtract_float + +=item multiply + +=item multiply_int + +=item multiply_float + +=item divide + +=item divide_int + +=item divide_float + +=item modulus + +=item modulus_int + +=item modulus_float + +=item cmodulus + +=item cmodulus_int + +=item cmodulus_float + +=item neg + +=item bitwise_or + +=item bitwise_or_int + +=item bitwise_and + +=item bitwise_and_int + +=item bitwise_xor + +=item bitwise_xor_int + +=item bitwise_ors + +=item bitwise_ors_str + +=item bitwise_ands + +=item bitwise_ands_str + +=item bitwise_xors + +=item bitwise_xors_str + +=item bitwise_not + +=item bitwise_shl + +=item bitwise_shl_int + +=item bitwise_shr + +=item bitwise_shr_int + +=item concatenate + +=item concatenate_native + +=item is_equal + +=item is_same + +=item cmp + +=item cmp_num + +=item cmp_string + +=item logical_or + +=item logical_and + +=item logical_xor + +=item logical_not + +=item repeat + +=item repeat_int + +=item increment + +=item decrement + +=item exists_keyed + +=item exists_keyed_int + +=item exists_keyed_str + +=item defined + +=item defined_keyed + +=item defined_keyed_int + +=item defined_keyed_str + +=item dtem delete_keyed_str + +=item nextkey_keyed + +=item nextkey_keyed_itr_str + +=item invoke + +=item can + +=item does + +=item isa + +=item fsh + +=item visit + +=item share + +=item add_method + +=item add_attribute + +=item add_parent + +=item add_role + +=back + + + =head1 ATTACHMENTS None.