From 911e6eb6a1a1ab5dd979a1917b79a5465da88181 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 18 十一月 2020 14:33:28 +0800
Subject: [PATCH] 修改gitignore

---
 api.go |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/api.go b/api.go
new file mode 100644
index 0000000..dc73a4f
--- /dev/null
+++ b/api.go
@@ -0,0 +1,59 @@
+package boltcache
+
+//娣诲姞涓�鏉℃棩蹇�
+func (ls *LogStore) ApplyLog(logData []byte) {
+	lastLogIndex := ls.getLastLog()
+	ls.applyCh <- &Log {
+		Index: lastLogIndex+1,
+		Data: logData,
+	}
+	ls.setLastLog(lastLogIndex + 1)
+}
+
+type LogCon struct {
+	conf *confLog
+	Log *Log
+}
+
+//鑾峰彇缂撳瓨鐨勬暟鎹�
+func (lc *LogCon) GetData() []byte {
+	return lc.Log.Data
+}
+
+//鎻愪緵缁欏灞備娇鐢紝鎸夐『搴忚幏鍙栫紦瀛樼殑鏃ュ織
+func (ls *LogStore) Get() *LogCon {
+	idx, _ := ls.store.FirstIndex(confBucket)
+	cLog := &confLog{}
+	if err := ls.store.GetConfLog(idx, cLog);err ==nil {
+		u, _ := ls.store.FirstIndex(cLog.BucketName)
+		log := &Log{}
+		if err = ls.store.GetLog(cLog.BucketName, u, log);err ==nil {
+			log.Index = u
+			cLog.Index = int(idx)
+			return &LogCon{
+				conf:cLog,
+				Log: log,
+			}
+		} else {
+			if size,_ := ls.store.Size(confBucket);size >1 {
+				ls.Delete(&LogCon{
+					conf: cLog,
+					Log: nil,
+				})
+			}
+			ls.printLog("Get log err:", err)
+		}
+	} else {
+		ls.printLog("Get conf idx:", idx, "err:", err)
+	}
+	return nil
+}
+
+//鎻愪緵缁欏灞備娇鐢紝鍒犻櫎鏃ュ織
+func (ls *LogStore) Delete(lc *LogCon) error {
+	return ls.store.Delete(lc)
+}
+
+func (ls *LogStore) Close() error {
+	return ls.store.Close()
+}
\ No newline at end of file

--
Gitblit v1.8.0