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