From d578715d012a2273458409487523d11d819ca20b Mon Sep 17 00:00:00 2001 From: Tobie Morgan Hitchcock Date: Fri, 14 Oct 2016 21:26:39 +0100 Subject: [PATCH] Add key for SQL LIVE queries --- util/keys/lv.go | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 util/keys/lv.go diff --git a/util/keys/lv.go b/util/keys/lv.go new file mode 100644 index 00000000..ba1181c7 --- /dev/null +++ b/util/keys/lv.go @@ -0,0 +1,54 @@ +// Copyright © 2016 Abcum Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package keys + +import ( + "fmt" +) + +// LV ... +type LV struct { + KV interface{} + CF interface{} + TK interface{} + NS interface{} + DB interface{} + LV interface{} +} + +// init initialises the key +func (k *LV) init() *LV { + k.CF = "!" + k.TK = "l" + return k +} + +// Encode encodes the key into binary +func (k *LV) Encode() []byte { + k.init() + return encode(k.KV, k.CF, k.TK, k.NS, k.DB, k.LV) +} + +// Decode decodes the key from binary +func (k *LV) Decode(data []byte) { + k.init() + decode(data, &k.KV, &k.CF, &k.TK, &k.NS, &k.DB, &k.LV) +} + +// String returns a string representation of the key +func (k *LV) String() string { + k.init() + return fmt.Sprintf("/%s/%s/%s/%s/%s/%s", k.KV, k.CF, k.TK, k.NS, k.DB, k.LV) +}