Author: marvin
Date: Sat Sep 29 00:58:09 2012
New Revision: 1391710

URL: http://svn.apache.org/viewvc?rev=1391710&view=rev
Log:
Add missing bootstrapping code.

Added:
    lucy/trunk/clownfish/runtime/core/Clownfish.c
      - copied unchanged from r1391689, lucy/trunk/core/Lucy.c
Modified:
    lucy/trunk/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm

Modified: lucy/trunk/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm
URL: 
http://svn.apache.org/viewvc/lucy/trunk/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm?rev=1391710&r1=1391709&r2=1391710&view=diff
==============================================================================
--- lucy/trunk/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm 
(original)
+++ lucy/trunk/clownfish/runtime/perl/buildlib/Clownfish/Build/Binding.pm Sat 
Sep 29 00:58:09 2012
@@ -21,6 +21,7 @@ $VERSION = eval $VERSION;
 
 sub bind_all {
     my $class = shift;
+    $class->bind_clownfish;
     $class->bind_bytebuf;
     $class->bind_charbuf;
     $class->bind_err;
@@ -34,6 +35,56 @@ sub bind_all {
     $class->bind_vtable;
 }
 
+sub bind_clownfish {
+    my $xs_code = <<'END_XS_CODE';
+MODULE = Clownfish    PACKAGE = Clownfish 
+
+BOOT:
+    lucy_Clownfish_bootstrap();
+
+IV
+_dummy_function()
+CODE:
+    RETVAL = 1;
+OUTPUT:
+    RETVAL
+
+SV*
+to_clownfish(sv)
+    SV *sv;
+CODE:
+{
+    lucy_Obj *obj = XSBind_perl_to_cfish(sv);
+    RETVAL = CFISH_OBJ_TO_SV_NOINC(obj);
+}
+OUTPUT: RETVAL
+
+SV*
+to_perl(sv)
+    SV *sv;
+CODE:
+{
+    if (sv_isobject(sv) && sv_derived_from(sv, "Clownfish::Obj")) {
+        IV tmp = SvIV(SvRV(sv));
+        lucy_Obj* obj = INT2PTR(lucy_Obj*, tmp);
+        RETVAL = XSBind_cfish_to_perl(obj);
+    }
+    else {
+        RETVAL = newSVsv(sv);
+    }
+}
+OUTPUT: RETVAL
+END_XS_CODE
+
+    my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+        parcel     => "Clownfish",
+        class_name => "Clownfish",
+    );
+    $binding->append_xs($xs_code);
+
+    Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
 sub bind_bytebuf {
     my $xs_code = <<'END_XS_CODE';
 MODULE = Clownfish     PACKAGE = Clownfish::ByteBuf


Reply via email to