blob: 2c101374517e5f0ec65bfd2b01bc55a074d01d70 [file] [log] [blame]
Matt Jeanneretcab955f2019-04-10 15:45:57 -04001/*
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
18type Revision interface {
19 Finalize(bool)
20 SetConfig(revision *DataRevision)
21 GetConfig() *DataRevision
22 Drop(txid string, includeConfig bool)
23 StorageDrop(txid string, includeConfig bool)
24 SetChildren(name string, children []Revision)
25 GetChildren(name string) []Revision
26 SetAllChildren(children map[string][]Revision)
27 GetAllChildren() map[string][]Revision
28 SetHash(hash string)
29 GetHash() string
30 ClearHash()
31 SetupWatch(key string)
32 SetName(name string)
33 GetName() string
34 SetBranch(branch *Branch)
35 GetBranch() *Branch
36 Get(int) interface{}
37 GetData() interface{}
38 GetNode() *node
39 LoadFromPersistence(path string, txid string) []Revision
40 UpdateData(data interface{}, branch *Branch) Revision
41 UpdateChildren(name string, children []Revision, branch *Branch) Revision
42 UpdateAllChildren(children map[string][]Revision, branch *Branch) Revision
43}