You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/07/31 19:49:01 UTC

[3/4] lucy-clownfish git commit: Add Go bindings for Boolean and Blob constructors.

Add Go bindings for Boolean and Blob constructors.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/bd8b54b0
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/bd8b54b0
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/bd8b54b0

Branch: refs/heads/master
Commit: bd8b54b08aac4710dbbc61bab70bdc760558fcd5
Parents: ad3282d
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Fri Jul 24 14:16:18 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Thu Jul 30 10:45:12 2015 -0700

----------------------------------------------------------------------
 runtime/go/clownfish/clownfish.go | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/bd8b54b0/runtime/go/clownfish/clownfish.go
----------------------------------------------------------------------
diff --git a/runtime/go/clownfish/clownfish.go b/runtime/go/clownfish/clownfish.go
index 9a13cff..2c5f40e 100644
--- a/runtime/go/clownfish/clownfish.go
+++ b/runtime/go/clownfish/clownfish.go
@@ -24,9 +24,10 @@ package clownfish
 #include "Clownfish/Err.h"
 #include "Clownfish/Class.h"
 #include "Clownfish/String.h"
+#include "Clownfish/Blob.h"
 #include "Clownfish/Hash.h"
 #include "Clownfish/Vector.h"
-#include "Clownfish/String.h"
+#include "Clownfish/Boolean.h"
 #include "Clownfish/Util/Memory.h"
 #include "Clownfish/Method.h"
 
@@ -165,3 +166,21 @@ func (s *StringIMP) SwapChars(match, replacement rune) string {
 	defer C.cfish_dec_refcount(unsafe.Pointer(retvalCF))
 	return CFStringToGo(unsafe.Pointer(retvalCF))
 }
+
+func NewBoolean(val bool) Boolean {
+	if val {
+		return WRAPBoolean(unsafe.Pointer(C.cfish_inc_refcount(unsafe.Pointer(C.CFISH_TRUE))))
+	} else {
+		return WRAPBoolean(unsafe.Pointer(C.cfish_inc_refcount(unsafe.Pointer(C.CFISH_FALSE))))
+	}
+}
+
+func NewBlob(content []byte) Blob {
+	size := C.size_t(len(content))
+	var buf *C.char = nil
+	if size > 0 {
+		buf = ((*C.char)(unsafe.Pointer(&content[0])))
+	}
+	obj := C.cfish_Blob_new(buf, size)
+	return WRAPBlob(unsafe.Pointer(obj))
+}