blob: a8b4201218474b64e1d86574d4613bd170a31a39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
package contracts
// Entity is implemented by every type Icinga DB should synchronize.
type Entity interface {
Fingerprinter
IDer
}
// Fingerprinter is implemented by every entity that uniquely identifies itself.
type Fingerprinter interface {
// Fingerprint returns the value that uniquely identifies the entity.
Fingerprint() Fingerprinter
}
// ID is a unique identifier of an entity.
type ID interface {
// String returns the string representation form of the ID.
// The String method is used to use the ID in functions
// where it needs to be compared or hashed.
String() string
}
// IDer is implemented by every entity that uniquely identifies itself.
type IDer interface {
ID() ID // ID returns the ID.
SetID(ID) // SetID sets the ID.
}
// Equaler is implemented by every type that is comparable.
type Equaler interface {
Equal(Equaler) bool // Equal checks for equality.
}
// Checksum is a unique identifier of an entity.
type Checksum interface {
Equaler
// String returns the string representation form of the Checksum.
// The String method is used to use the Checksum in functions
// where it needs to be compared or hashed.
String() string
}
// Checksumer is implemented by every entity with a checksum.
type Checksumer interface {
Checksum() Checksum // Checksum returns the Checksum.
SetChecksum(Checksum) // SetChecksum sets the Checksum.
}
// EntityFactoryFunc knows how to create an Entity.
type EntityFactoryFunc func() Entity
// Waiter implements the Wait method,
// which blocks until execution is complete.
type Waiter interface {
Wait() error // Wait waits for execution to complete.
}
// The WaiterFunc type is an adapter to allow the use of ordinary functions as Waiter.
// If f is a function with the appropriate signature, WaiterFunc(f) is a Waiter that calls f.
type WaiterFunc func() error
// Wait implements the Waiter interface.
func (f WaiterFunc) Wait() error {
return f()
}
// Initer implements the Init method,
// which initializes the object in addition to zeroing.
type Initer interface {
Init() // Init initializes the object.
}
// Upserter implements the Upsert method,
// which returns a part of the object for ON DUPLICATE KEY UPDATE.
type Upserter interface {
Upsert() interface{} // Upsert partitions the object.
}
// TableNamer implements the TableName method,
// which returns the table of the object.
type TableNamer interface {
TableName() string // TableName tells the table.
}
// Scoper implements the Scope method,
// which returns a struct specifying the WHERE conditions that
// entities must satisfy in order to be SELECTed.
type Scoper interface {
Scope() interface{}
}
|