view release on metacpan or search on metacpan
lib/Clownfish/CFC.xs view on Meta::CPAN
else {
return newSV(0);
}
}
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Base
void
DESTROY(self)
CFCBase *self;
PPCODE:
CFCBase_decref((CFCBase*)self);
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Model::CBlock
SV*
_new(contents)
const char *contents;
CODE:
CFCCBlock *self = CFCCBlock_new(contents);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCCBlock *self;
ALIAS:
get_contents = 2
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *contents = CFCCBlock_get_contents(self);
retval = newSVpvn(contents, strlen(contents));
}
break;
END_SET_OR_GET_SWITCH
}
lib/Clownfish/CFC.xs view on Meta::CPAN
SV *unused;
const char *class_name;
CODE:
CHY_UNUSED_VAR(unused);
CFCClass *klass = CFCClass_fetch_singleton(class_name);
RETVAL = S_cfcbase_to_perlref(klass);
OUTPUT: RETVAL
void
_clear_registry(...)
PPCODE:
CHY_UNUSED_VAR(items);
CFCClass_clear_registry();
void
add_child(self, child)
CFCClass *self;
CFCClass *child;
PPCODE:
CFCClass_add_child(self, child);
void
add_member_var(self, var)
CFCClass *self;
CFCVariable *var;
PPCODE:
CFCClass_add_member_var(self, var);
void
add_function(self, func)
CFCClass *self;
CFCFunction *func;
PPCODE:
CFCClass_add_function(self, func);
void
add_method(self, method)
CFCClass *self;
CFCMethod *method;
PPCODE:
CFCClass_add_method(self, method);
void
grow_tree(self)
CFCClass *self;
PPCODE:
CFCClass_grow_tree(self);
void
add_inert_var(self, var)
CFCClass *self;
CFCVariable *var;
PPCODE:
CFCClass_add_inert_var(self, var);
SV*
function(self, sym)
CFCClass *self;
const char *sym;
CODE:
CFCFunction *func = CFCClass_function(self, sym);
RETVAL = S_cfcbase_to_perlref(func);
OUTPUT: RETVAL
lib/Clownfish/CFC.xs view on Meta::CPAN
CFCClass *self;
const char *sym;
CODE:
CFCMethod *method = CFCClass_fresh_method(self, sym);
RETVAL = S_cfcbase_to_perlref(method);
OUTPUT: RETVAL
void
resolve_types(self)
CFCClass *self;
PPCODE:
CFCClass_resolve_types(self);
void
_set_or_get(self, ...)
CFCClass *self;
ALIAS:
get_exposure = 2
get_name = 4
get_nickname = 6
set_parent = 7
lib/Clownfish/CFC.xs view on Meta::CPAN
children = 32
functions = 34
methods = 36
member_vars = 38
inert_vars = 40
tree_to_ladder = 42
fresh_methods = 44
fresh_member_vars = 46
privacy_symbol = 48
included = 50
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *value = CFCClass_get_exposure(self);
retval = newSVpvn(value, strlen(value));
}
break;
case 4: {
const char *value = CFCClass_get_name(self);
retval = newSVpvn(value, strlen(value));
lib/Clownfish/CFC.xs view on Meta::CPAN
void
_set_or_get(self, ...)
CFCDocuComment *self;
ALIAS:
get_description = 2
get_brief = 4
get_long = 6
get_param_names = 8
get_param_docs = 10
get_retval = 12
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *description = CFCDocuComment_get_description(self);
retval = newSVpvn(description, strlen(description));
}
break;
case 4: {
const char *brief = CFCDocuComment_get_brief(self);
retval = newSVpvn(brief, strlen(brief));
lib/Clownfish/CFC.xs view on Meta::CPAN
CODE:
CFCFile *self = CFCFile_new(parcel, spec);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
add_block(self, block)
CFCFile *self;
CFCBase *block;
PPCODE:
CFCFile_add_block(self, block);
void
_set_or_get(self, ...)
CFCFile *self;
ALIAS:
set_modified = 1
get_modified = 2
get_path_part = 4
guard_name = 6
guard_start = 8
guard_close = 10
blocks = 12
classes = 14
get_source_dir = 16
included = 18
get_parcel = 20
get_path = 22
PPCODE:
{
START_SET_OR_GET_SWITCH
case 1:
CFCFile_set_modified(self, !!SvTRUE(ST(1)));
break;
case 2:
retval = newSViv(CFCFile_get_modified(self));
break;
case 4: {
const char *value = CFCFile_get_path_part(self);
lib/Clownfish/CFC.xs view on Meta::CPAN
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCFileSpec *self;
ALIAS:
get_source_dir = 2
get_path_part = 4
included = 6
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *value = CFCFileSpec_get_source_dir(self);
retval = newSVpv(value, strlen(value));
}
break;
case 4: {
const char *value = CFCFileSpec_get_path_part(self);
retval = newSVpv(value, strlen(value));
lib/Clownfish/CFC.xs view on Meta::CPAN
SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL;
CFCFunction *self = CFCFunction_new(exposure, name, return_type,
param_list, docucomment, is_inline);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
resolve_types(self)
CFCFunction *self;
PPCODE:
CFCFunction_resolve_types(self);
SV*
_various_function_syms(self, klass)
CFCFunction *self;
CFCClass *klass;
ALIAS:
short_func_sym = 1
full_func_sym = 2
CODE:
lib/Clownfish/CFC.xs view on Meta::CPAN
void
_set_or_get(self, ...)
CFCFunction *self;
ALIAS:
get_return_type = 2
get_param_list = 4
get_docucomment = 6
inline = 8
void = 10
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
CFCType *type = CFCFunction_get_return_type(self);
retval = S_cfcbase_to_perlref(type);
}
break;
case 4: {
CFCParamList *param_list = CFCFunction_get_param_list(self);
retval = S_cfcbase_to_perlref(param_list);
lib/Clownfish/CFC.xs view on Meta::CPAN
CODE:
CFCHierarchy *self = CFCHierarchy_new(dest);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
add_source_dir(self, source_dir)
CFCHierarchy *self;
const char *source_dir;
PPCODE:
CFCHierarchy_add_source_dir(self, source_dir);
void
add_include_dir(self, include_dir)
CFCHierarchy *self;
const char *include_dir;
PPCODE:
CFCHierarchy_add_include_dir(self, include_dir);
void
build(self)
CFCHierarchy *self;
PPCODE:
CFCHierarchy_build(self);
void
read_host_data_json(self)
CFCHierarchy *self;
PPCODE:
CFCHierarchy_read_host_data_json(self, "perl");
int
propagate_modified(self, ...)
CFCHierarchy *self;
CODE:
int modified = items > 1 ? !!SvTRUE(ST(1)) : 0;
RETVAL = CFCHierarchy_propagate_modified(self, modified);
OUTPUT: RETVAL
void
write_log(self)
CFCHierarchy *self;
PPCODE:
CFCHierarchy_write_log(self);
void
_set_or_get(self, ...)
CFCHierarchy *self;
ALIAS:
get_dest = 2
get_include_dest = 4
get_source_dest = 6
files = 8
ordered_classes = 10
get_source_dirs = 12
get_include_dirs = 14
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *value = CFCHierarchy_get_dest(self);
retval = newSVpv(value, strlen(value));
}
break;
case 4: {
const char *value = CFCHierarchy_get_include_dest(self);
retval = newSVpv(value, strlen(value));
lib/Clownfish/CFC.xs view on Meta::CPAN
CFCMethod *self;
CFCMethod *other;
CODE:
RETVAL = CFCMethod_compatible(self, other);
OUTPUT: RETVAL
void
override(self, other)
CFCMethod *self;
CFCMethod *other;
PPCODE:
CFCMethod_override(self, other);
SV*
finalize(self)
CFCMethod *self;
CODE:
CFCMethod *finalized = CFCMethod_finalize(self);
RETVAL = S_cfcbase_to_perlref(finalized);
CFCBase_decref((CFCBase*)finalized);
OUTPUT: RETVAL
void
resolve_types(self)
CFCMethod *self;
PPCODE:
CFCMethod_resolve_types(self);
void
exclude_from_host(self)
CFCMethod *self;
PPCODE:
CFCMethod_exclude_from_host(self);
SV*
_various_method_syms(self, invoker)
CFCMethod *self;
CFCClass *invoker;
ALIAS:
short_method_sym = 1
full_method_sym = 2
full_offset_sym = 3
lib/Clownfish/CFC.xs view on Meta::CPAN
_set_or_get(self, ...)
CFCMethod *self;
ALIAS:
abstract = 12
novel = 14
final = 16
self_type = 18
set_host_alias = 19
get_host_alias = 20
excluded_from_host = 22
PPCODE:
{
START_SET_OR_GET_SWITCH
case 12:
retval = newSViv(CFCMethod_abstract(self));
break;
case 14:
retval = newSViv(CFCMethod_novel(self));
break;
case 16:
retval = newSViv(CFCMethod_final(self));
lib/Clownfish/CFC.xs view on Meta::CPAN
CFCParamList *self = CFCParamList_new(variadic);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
add_param(self, variable, value_sv)
CFCParamList *self;
CFCVariable *variable;
SV *value_sv;
PPCODE:
const char *value = SvOK(value_sv) ? SvPV_nolen(value_sv) : NULL;
CFCParamList_add_param(self, variable, value);
void
resolve_types(self)
CFCParamList *self;
PPCODE:
CFCParamList_resolve_types(self);
void
_set_or_get(self, ...)
CFCParamList *self;
ALIAS:
get_variables = 2
get_initial_values = 4
variadic = 6
num_vars = 8
to_c = 10
name_list = 12
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
AV *av = newAV();
CFCVariable **vars = CFCParamList_get_variables(self);
int num_vars = CFCParamList_num_vars(self);
for (int i = 0; i < num_vars; i++) {
SV *ref = S_cfcbase_to_perlref(vars[i]);
av_store(av, i, ref);
}
lib/Clownfish/CFC.xs view on Meta::CPAN
CHY_UNUSED_VAR(unused);
const char *name = SvOK(name_sv) ? SvPV_nolen(name_sv) : NULL;
CFCParcel *self = CFCParcel_fetch(name);
RETVAL = S_cfcbase_to_perlref(self);
OUTPUT: RETVAL
void
register(self)
CFCParcel *self;
PPCODE:
CFCParcel_register(self);
int
equals(self, other)
CFCParcel *self;
CFCParcel *other;
CODE:
RETVAL = CFCParcel_equals(self, other);
OUTPUT: RETVAL
lib/Clownfish/CFC.xs view on Meta::CPAN
CODE:
CHY_UNUSED_VAR(items);
CFCParcel **all_parcels = CFCParcel_all_parcels();
RETVAL = S_array_of_cfcbase_to_av((CFCBase**)all_parcels);
OUTPUT: RETVAL
void
add_inherited_parcel(self, inherited)
CFCParcel *self;
CFCParcel *inherited;
PPCODE:
CFCParcel_add_inherited_parcel(self, inherited);
int
has_prereq(self, parcel)
CFCParcel *self;
CFCParcel *parcel;
CODE:
RETVAL = CFCParcel_has_prereq(self, parcel);
OUTPUT: RETVAL
void
add_struct_sym(self, struct_sym)
CFCParcel *self;
const char *struct_sym;
PPCODE:
CFCParcel_add_struct_sym(self, struct_sym);
SV*
lookup_struct_sym(self, struct_sym)
CFCParcel *self;
const char *struct_sym;
CODE:
CFCParcel *parcel = CFCParcel_lookup_struct_sym(self, struct_sym);
RETVAL = S_cfcbase_to_perlref(parcel);
OUTPUT: RETVAL
void
reap_singletons(...)
PPCODE:
CHY_UNUSED_VAR(items);
CFCParcel_reap_singletons();
void
_set_or_get(self, ...)
CFCParcel *self;
ALIAS:
get_name = 2
get_nickname = 4
get_prefix = 6
get_Prefix = 8
get_PREFIX = 10
get_version = 12
get_prereqs = 14
included = 16
prereq_parcels = 20
inherited_parcels = 22
get_xs_module = 24
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *name = CFCParcel_get_name(self);
retval = newSVpvn(name, strlen(name));
}
break;
case 4: {
const char *nickname = CFCParcel_get_nickname(self);
retval = newSVpvn(nickname, strlen(nickname));
lib/Clownfish/CFC.xs view on Meta::CPAN
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCPrereq *self;
ALIAS:
get_name = 2
get_version = 4
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *name = CFCPrereq_get_name(self);
retval = newSVpvn(name, strlen(name));
}
break;
case 4: {
CFCVersion *value = CFCPrereq_get_version(self);
retval = S_cfcbase_to_perlref(value);
lib/Clownfish/CFC.xs view on Meta::CPAN
void
_set_or_get(self, ...)
CFCSymbol *self;
ALIAS:
get_exposure = 8
get_name = 10
public = 18
private = 20
parcel = 22
local = 24
PPCODE:
{
START_SET_OR_GET_SWITCH
case 8: {
const char *exposure = CFCSymbol_get_exposure(self);
retval = newSVpvn(exposure, strlen(exposure));
}
break;
case 10: {
const char *name = CFCSymbol_get_name(self);
retval = newSVpvn(name, strlen(name));
lib/Clownfish/CFC.xs view on Meta::CPAN
unsigned
COMPOSITE(...)
CODE:
CHY_UNUSED_VAR(items);
RETVAL = CFCTYPE_COMPOSITE;
OUTPUT: RETVAL
void
resolve(self)
CFCType *self;
PPCODE:
CFCType_resolve(self);
void
_set_or_get(self, ...)
CFCType *self;
ALIAS:
set_specifier = 1
get_specifier = 2
get_parcel = 4
get_indirection = 6
lib/Clownfish/CFC.xs view on Meta::CPAN
is_integer = 20
is_floating = 22
cfish_string = 24
is_va_list = 26
is_arbitrary = 28
is_composite = 30
get_width = 32
incremented = 34
decremented = 36
get_array = 38
PPCODE:
{
START_SET_OR_GET_SWITCH
case 1:
CFCType_set_specifier(self, SvPV_nolen(ST(1)));
break;
case 2: {
const char *specifier = CFCType_get_specifier(self);
retval = newSVpvn(specifier, strlen(specifier));
}
break;
lib/Clownfish/CFC.xs view on Meta::CPAN
const char *orig;
const char *dest;
CODE:
RETVAL = CFCUtil_current(orig, dest);
OUTPUT: RETVAL
void
write_if_changed(path, content_sv)
const char *path;
SV *content_sv;
PPCODE:
STRLEN len;
char *content = SvPV(content_sv, len);
CFCUtil_write_if_changed(path, content, len);
int
is_dir(path)
const char *path;
CODE:
RETVAL = CFCUtil_is_dir(path);
OUTPUT: RETVAL
lib/Clownfish/CFC.xs view on Meta::CPAN
equals(self, other)
CFCVariable *self;
CFCVariable *other;
CODE:
RETVAL = CFCVariable_equals(self, other);
OUTPUT: RETVAL
void
resolve_type(self)
CFCVariable *self;
PPCODE:
CFCVariable_resolve_type(self);
SV*
global_c(self, klass)
CFCVariable *self;
CFCClass *klass;
CODE:
char *global_c = CFCVariable_global_c(self, klass);
RETVAL = S_sv_eat_c_string(global_c);
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCVariable *self;
ALIAS:
get_type = 2
local_c = 4
local_declaration = 8
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
CFCType *type = CFCVariable_get_type(self);
retval = S_cfcbase_to_perlref(type);
}
break;
case 4: {
const char *local_c = CFCVariable_local_c(self);
retval = newSVpvn(local_c, strlen(local_c));
lib/Clownfish/CFC.xs view on Meta::CPAN
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCVersion *self;
ALIAS:
get_major = 2
get_vstring = 4
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2:
retval = newSVuv(CFCVersion_get_major(self));
break;
case 4: {
const char *value = CFCVersion_get_vstring(self);
retval = newSVpvn(value, strlen(value));
}
break;
lib/Clownfish/CFC.xs view on Meta::CPAN
modified = !!SvIV(ST(1));
}
RETVAL = CFCBindCore_write_all_modified(self, modified);
}
OUTPUT: RETVAL
void
copy_headers(self, dest_dir)
CFCBindCore *self;
const char *dest_dir;
PPCODE:
CFCBindCore_copy_headers(self, dest_dir);
void
write_host_data_json(self, dest_dir)
CFCBindCore *self;
const char *dest_dir;
PPCODE:
CFCBindCore_write_host_data_json(self, dest_dir, "perl");
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Binding::Core::Function
SV*
func_declaration(unused, func, klass)
SV *unused;
CFCFunction *func;
CFCClass *klass;
lib/Clownfish/CFC.xs view on Meta::CPAN
OUTPUT: RETVAL
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Binding::Core::File
void
_write_h(file, dest, header, footer)
CFCFile *file;
const char *dest;
const char *header;
const char *footer;
PPCODE:
CFCBindFile_write_h(file, dest, header, footer);
MODULE = Clownfish PACKAGE = Clownfish::CFC::Binding::Perl
SV*
_new(hierarchy, lib_dir, header, footer)
CFCHierarchy *hierarchy;
const char *lib_dir;
const char *header;
const char *footer;
lib/Clownfish/CFC.xs view on Meta::CPAN
SV *path = S_sv_eat_c_string(written[i]);
av_push(modified, path);
}
FREEMEM(written);
RETVAL = newRV_noinc((SV*)modified);
OUTPUT: RETVAL
void
write_host_code(self)
CFCPerl *self;
PPCODE:
CFCPerl_write_host_code(self);
void
write_hostdefs(self)
CFCPerl *self;
PPCODE:
CFCPerl_write_hostdefs(self);
void
_write_bindings(self, boot_class, sv)
CFCPerl *self;
const char *boot_class;
SV *sv;
PPCODE:
CFCParcel **parcels = (CFCParcel**)
S_av_to_array_of_cfcbase(sv, "Clownfish::CFC::Model::Parcel");
CFCPerl_write_bindings(self, boot_class, parcels);
FREEMEM(parcels);
void
write_xs_typemap(self)
CFCPerl *self;
PPCODE:
CFCPerl_write_xs_typemap(self);
MODULE = Clownfish PACKAGE = Clownfish::CFC::Binding::Perl::Subroutine
void
_set_or_get(self, ...)
CFCPerlSub *self;
ALIAS:
get_class_name = 2
use_labeled_params = 4
perl_name = 6
get_param_list = 8
c_name = 10
c_name_list = 12
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *value = CFCPerlSub_get_class_name(self);
retval = newSVpvn(value, strlen(value));
}
break;
case 4:
retval = newSViv(CFCPerlSub_use_labeled_params(self));
break;
lib/Clownfish/CFC.xs view on Meta::CPAN
CODE:
CFCPerlClass *self = CFCPerlClass_new(parcel, class_name);
RETVAL = S_cfcbase_to_perlref(self);
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
register(unused, binding)
SV *unused;
CFCPerlClass *binding;
PPCODE:
CHY_UNUSED_VAR(unused);
CFCPerlClass_add_to_registry(binding);
SV*
singleton(unused_sv, class_name)
SV *unused_sv;
const char *class_name;
CODE:
CHY_UNUSED_VAR(unused_sv);
CFCPerlClass *binding = CFCPerlClass_singleton(class_name);
lib/Clownfish/CFC.xs view on Meta::CPAN
SV*
registered(...)
CODE:
CHY_UNUSED_VAR(items);
CFCPerlClass **registry = CFCPerlClass_registry();
RETVAL = S_array_of_cfcbase_to_av((CFCBase**)registry);
OUTPUT: RETVAL
void
_clear_registry(...)
PPCODE:
CHY_UNUSED_VAR(items);
CFCPerlClass_clear_registry();
void
_bind_method(self, alias_sv, meth_sv)
CFCPerlClass *self;
SV *alias_sv;
SV *meth_sv;
PPCODE:
const char *alias = SvOK(alias_sv) ? SvPVutf8_nolen(alias_sv) : NULL;
const char *meth = SvOK(meth_sv) ? SvPVutf8_nolen(meth_sv) : NULL;
CFCPerlClass_bind_method(self, alias, meth);
void
_bind_constructor(self, alias_sv, init_sv)
CFCPerlClass *self;
SV *alias_sv;
SV *init_sv;
PPCODE:
const char *alias = SvOK(alias_sv) ? SvPVutf8_nolen(alias_sv) : NULL;
const char *init = SvOK(init_sv) ? SvPVutf8_nolen(init_sv) : NULL;
CFCPerlClass_bind_constructor(self, alias, init);
void
exclude_method(self, method)
CFCPerlClass *self;
const char *method;
PPCODE:
CFCPerlClass_exclude_method(self, method);
void
exclude_constructor(self)
CFCPerlClass *self;
PPCODE:
CFCPerlClass_exclude_constructor(self);
void
append_xs(self, xs)
CFCPerlClass *self;
const char *xs;
PPCODE:
CFCPerlClass_append_xs(self, xs);
SV*
method_bindings(unused, klass)
SV *unused;
CFCClass *klass;
CODE:
CHY_UNUSED_VAR(unused);
CFCPerlMethod **bound = CFCPerlClass_method_bindings(klass);
RETVAL = S_array_of_cfcbase_to_av((CFCBase**)bound);
lib/Clownfish/CFC.xs view on Meta::CPAN
void
_set_or_get(self, ...)
CFCPerlClass *self;
ALIAS:
get_class_name = 2
get_client = 4
get_xs_code = 6
set_pod_spec = 7
get_pod_spec = 8
PPCODE:
{
START_SET_OR_GET_SWITCH
case 2: {
const char *value = CFCPerlClass_get_class_name(self);
retval = newSVpvn(value, strlen(value));
}
break;
case 4: {
CFCClass *value = CFCPerlClass_get_client(self);
retval = S_cfcbase_to_perlref(value);
lib/Clownfish/CFC.xs view on Meta::CPAN
retval = S_cfcbase_to_perlref(value);
}
break;
END_SET_OR_GET_SWITCH
}
void
add_class_alias(self, alias)
CFCPerlClass *self;
const char *alias;
PPCODE:
CFCPerlClass_add_class_alias(self, alias);
SV*
get_class_aliases(self)
CFCPerlClass *self;
CODE:
const char **aliases = CFCPerlClass_get_class_aliases(self);
RETVAL = S_string_array_to_av(aliases);
OUTPUT: RETVAL
lib/Clownfish/CFC.xs view on Meta::CPAN
CFCBase_decref((CFCBase*)self);
OUTPUT: RETVAL
void
_add_method(self, alias, method_sv, sample_sv, pod_sv)
CFCPerlPod *self;
const char *alias;
SV *method_sv;
SV *sample_sv;
SV *pod_sv;
PPCODE:
const char *method = SvPOK(method_sv) ? SvPVutf8_nolen(method_sv) : NULL;
const char *sample = SvPOK(sample_sv) ? SvPVutf8_nolen(sample_sv) : NULL;
const char *pod = SvPOK(pod_sv) ? SvPVutf8_nolen(pod_sv) : NULL;
CFCPerlPod_add_method(self, alias, method, sample, pod);
void
_add_constructor(self, alias_sv, func_sv, sample_sv, pod_sv)
CFCPerlPod *self;
SV *alias_sv;
SV *func_sv;
SV *sample_sv;
SV *pod_sv;
PPCODE:
const char *alias = SvPOK(alias_sv) ? SvPVutf8_nolen(alias_sv) : NULL;
const char *func = SvPOK(func_sv) ? SvPVutf8_nolen(func_sv) : NULL;
const char *sample = SvPOK(sample_sv) ? SvPVutf8_nolen(sample_sv) : NULL;
const char *pod = SvPOK(pod_sv) ? SvPVutf8_nolen(pod_sv) : NULL;
CFCPerlPod_add_constructor(self, alias, func, sample, pod);
SV*
methods_pod(self, klass)
CFCPerlPod *self;
CFCClass *klass;
lib/Clownfish/CFC.xs view on Meta::CPAN
OUTPUT: RETVAL
void
_set_or_get(self, ...)
CFCPerlPod *self;
ALIAS:
set_synopsis = 1
get_synopsis = 2
set_description = 3
get_description = 4
PPCODE:
{
START_SET_OR_GET_SWITCH
case 1: {
const char *val = SvOK(ST(1)) ? SvPVutf8_nolen(ST(1)) : NULL;
CFCPerlPod_set_synopsis(self, val);
}
break;
case 2: {
const char *value = CFCPerlPod_get_synopsis(self);
retval = newSVpvn(value, strlen(value));
lib/Clownfish/CFC.xs view on Meta::CPAN
to_perl(type, cf_var)
CFCType *type;
const char *cf_var;
CODE:
RETVAL = S_sv_eat_c_string(CFCPerlTypeMap_to_perl(type, cf_var));
OUTPUT: RETVAL
void
_write_xs_typemap(hierarchy)
CFCHierarchy *hierarchy;
PPCODE:
CFCPerlTypeMap_write_xs_typemap(hierarchy);
MODULE = Clownfish::CFC PACKAGE = Clownfish::CFC::Parser
SV*
new(klass)
const char *klass;
CODE:
if (strcmp(klass, "Clownfish::CFC::Parser")) {
lib/Clownfish/CFC.xs view on Meta::CPAN
CODE:
CFCFile *got = CFCParser_parse_file(self, string, file_spec);
RETVAL = S_cfcbase_to_perlref(got);
CFCBase_decref((CFCBase*)got);
OUTPUT: RETVAL
void
set_parcel(self, parcel)
CFCParser *self;
CFCParcel *parcel;
PPCODE:
CFCParser_set_parcel(self, parcel);
void
set_class_name(self, class_name)
CFCParser *self;
const char *class_name;
PPCODE:
CFCParser_set_class_name(self, class_name);
SV*
get_parcel(self)
CFCParser *self;
CODE:
CFCParcel *parcel = CFCParser_get_parcel(self);
RETVAL = S_cfcbase_to_perlref((CFCBase*)parcel);
OUTPUT: RETVAL