milvus/internal/querynode/collection.go

57 lines
1.1 KiB
Go

package querynode
/*
#cgo CFLAGS: -I${SRCDIR}/../core/output/include
#cgo LDFLAGS: -L${SRCDIR}/../core/output/lib -lmilvus_segcore -Wl,-rpath=${SRCDIR}/../core/output/lib
#include "segcore/collection_c.h"
#include "segcore/segment_c.h"
*/
import "C"
import (
"github.com/zilliztech/milvus-distributed/internal/proto/etcdpb"
)
type Collection struct {
collectionPtr C.CCollection
meta *etcdpb.CollectionMeta
partitions []*Partition
}
func (c *Collection) Name() string {
return (*c.meta).Schema.Name
}
func (c *Collection) ID() UniqueID {
return (*c.meta).ID
}
func (c *Collection) Partitions() *[]*Partition {
return &c.partitions
}
func newCollection(collMeta *etcdpb.CollectionMeta, collMetaBlob string) *Collection {
/*
CCollection
newCollection(const char* schema_conf);
*/
cCollMetaBlob := C.CString(collMetaBlob)
collection := C.NewCollection(cCollMetaBlob)
var newCollection = &Collection{collectionPtr: collection, meta: collMeta}
return newCollection
}
func deleteCollection(collection *Collection) {
/*
void
deleteCollection(CCollection collection);
*/
cPtr := collection.collectionPtr
C.DeleteCollection(cPtr)
}