holo-client-go/holo-client/holo_config.go (70 lines of code) (raw):
package holoclient
/*
#cgo CFLAGS: -I./include
#cgo LDFLAGS: -L./lib -lholo-client
#include "holo_config.h"
#include <stdlib.h>
#include <stdbool.h>
*/
import "C"
import "unsafe"
type holoConfig struct {
cconfig C.HoloConfig
}
type HoloWriteMode C.HoloWriteMode
const (
INSERT_OR_IGNORE HoloWriteMode = C.INSERT_OR_IGNORE
INSERT_OR_UPDATE HoloWriteMode = C.INSERT_OR_UPDATE
INSERT_OR_REPLACE HoloWriteMode = C.INSERT_OR_REPLACE
)
func NewHoloConfig(connInfo string) *holoConfig {
config := new(holoConfig)
cInfo := C.CString(connInfo)
config.cconfig = C.holo_client_new_config(cInfo)
C.free(unsafe.Pointer(cInfo))
return config
}
func (config *holoConfig) SetThreadSize(threadSize int) {
config.cconfig.threadSize = C.int(threadSize)
}
func (config *holoConfig) SetBatchSize(batchSize int) {
config.cconfig.batchSize = C.int(batchSize)
}
func (config *holoConfig) SetShardCollectorSize(shardCollectorSize int) {
config.cconfig.shardCollectorSize = C.int(shardCollectorSize)
}
func (config *holoConfig) SetWriteMode(mode HoloWriteMode) {
config.cconfig.writeMode = C.HoloWriteMode(mode)
}
func (config *holoConfig) SetWriteMaxIntervalMs(writeMaxIntervalMs int64) {
config.cconfig.writeMaxIntervalMs = C.long(writeMaxIntervalMs)
}
func (config *holoConfig) SetWriteBatchByteSize(writeBatchByteSize int64) {
config.cconfig.writeBatchByteSize = C.long(writeBatchByteSize)
}
func (config *holoConfig) SetWriteBatchTotalByteSize(writeBatchTotalByteSize int64) {
config.cconfig.writeBatchTotalByteSize = C.long(writeBatchTotalByteSize)
}
func (config *holoConfig) SetRetryCount(retryCount int) {
config.cconfig.retryCount = C.int(retryCount)
}
func (config *holoConfig) SetRetrySleepStepMs(retrySleepStepMs int64) {
config.cconfig.retrySleepStepMs = C.longlong(retrySleepStepMs)
}
func (config *holoConfig) SetRetrySleepInitMs(retrySleepInitMs int64) {
config.cconfig.retrySleepInitMs = C.longlong(retrySleepInitMs)
}
func (config *holoConfig) SetConnectionMaxIdleMs(connectionMaxIdleMs int64) {
config.cconfig.connectionMaxIdleMs = C.longlong(connectionMaxIdleMs)
}
func (config *holoConfig) SetReadBatchSize(readBatchSize int) {
config.cconfig.readBatchSize = C.int(readBatchSize)
}
func (config *holoConfig) SetDynamicPartition(dynamicPartition bool) {
config.cconfig.dynamicPartition = C.bool(dynamicPartition)
}
func (config *holoConfig) SetReportInterval(reportInterval int64) {
config.cconfig.reportInterval = C.long(reportInterval)
}
func (config *holoConfig) SetUseFixedFe(useFixedFe bool) {
config.cconfig.useFixedFe = C.bool(useFixedFe)
}
func (config *holoConfig) SetUnnestMode(unnestMode bool) {
config.cconfig.unnestMode = C.bool(unnestMode)
}
func (config *holoConfig) SetAutoFlush(autoFlush bool) {
config.cconfig.autoFlush = C.bool(autoFlush)
}