blob: 71c5d0c121fd2c7748ce98d586c4c21f70da22a0 [file] [log] [blame]
Scott Baker2c1c4822019-10-16 11:02:41 -07001/*
2 * Copyright 2018-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package model
17
18import (
19 "context"
20 "github.com/opencord/voltha-lib-go/pkg/db/kvstore"
21 "time"
22)
23
24type Revision interface {
25 Finalize(bool)
26 SetConfig(revision *DataRevision)
27 GetConfig() *DataRevision
28 Drop(txid string, includeConfig bool)
29 StorageDrop(txid string, includeConfig bool)
30 ChildDrop(childType string, childHash string)
Stephane Barbarie42b97a42019-10-23 11:05:04 -040031 ChildDropByName(childName string)
Scott Baker2c1c4822019-10-16 11:02:41 -070032 SetChildren(name string, children []Revision)
33 GetChildren(name string) []Revision
34 SetAllChildren(children map[string][]Revision)
35 GetAllChildren() map[string][]Revision
36 SetHash(hash string)
37 GetHash() string
38 ClearHash()
39 getVersion() int64
40 SetupWatch(key string)
41 SetName(name string)
42 GetName() string
43 SetBranch(branch *Branch)
44 GetBranch() *Branch
45 Get(int) interface{}
46 GetData() interface{}
47 GetNode() *node
48 SetLastUpdate(ts ...time.Time)
49 GetLastUpdate() time.Time
50 LoadFromPersistence(ctx context.Context, path string, txid string, blobs map[string]*kvstore.KVPair) []Revision
51 UpdateData(ctx context.Context, data interface{}, branch *Branch) Revision
52 UpdateChildren(ctx context.Context, name string, children []Revision, branch *Branch) Revision
53 UpdateAllChildren(children map[string][]Revision, branch *Branch) Revision
54}