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/04/07 02:03:47 UTC
[2/9] lucy-clownfish git commit: Expose Parcel fetching from Go.
Expose Parcel fetching from Go.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/fbd9d542
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/fbd9d542
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/fbd9d542
Branch: refs/heads/master
Commit: fbd9d5425720ee4ad270f065e034c6f5d039f698
Parents: fcf9dcf
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Sun Mar 15 10:42:55 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Mon Apr 6 09:08:19 2015 -0700
----------------------------------------------------------------------
compiler/go/cfc/cfc.go | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/fbd9d542/compiler/go/cfc/cfc.go
----------------------------------------------------------------------
diff --git a/compiler/go/cfc/cfc.go b/compiler/go/cfc/cfc.go
index 2a1e44f..930aba8 100644
--- a/compiler/go/cfc/cfc.go
+++ b/compiler/go/cfc/cfc.go
@@ -67,6 +67,10 @@ func DoStuff() {
hierarchy.Build()
}
+type Parcel struct {
+ ref *C.CFCParcel
+}
+
type Hierarchy struct {
ref *C.CFCHierarchy
}
@@ -79,6 +83,22 @@ type BindC struct {
ref *C.CFCC
}
+func FetchParcel(name string) *Parcel {
+ nameC := C.CString(name)
+ defer C.free(unsafe.Pointer(nameC))
+ parcelC := C.CFCParcel_fetch(nameC)
+ if parcelC == nil {
+ return nil
+ }
+ obj := &Parcel{parcelC}
+ runtime.SetFinalizer(obj, (*Parcel).finalize)
+ return obj
+}
+
+func (obj *Parcel) finalize() {
+ C.CFCBase_decref((*C.CFCBase)(unsafe.Pointer(obj.ref)))
+}
+
func NewHierarchy(dest string) *Hierarchy {
destCString := C.CString(dest)
defer C.free(unsafe.Pointer(destCString))