-
Notifications
You must be signed in to change notification settings - Fork 151
/
milestones.go
26 lines (20 loc) · 963 Bytes
/
milestones.go
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
package storage
import (
"github.com/iotaledger/hornet/pkg/model/milestone"
)
func MilestoneCaller(handler interface{}, params ...interface{}) {
handler.(func(cachedMilestone *CachedMilestone))(params[0].(*CachedMilestone).Retain()) // milestone pass +1
}
func MilestoneWithRequestedCaller(handler interface{}, params ...interface{}) {
handler.(func(cachedMilestone *CachedMilestone, requested bool))(params[0].(*CachedMilestone).Retain(), params[1].(bool)) // milestone pass +1
}
// MilestoneCachedMessageOrNil returns the cached message of a milestone index or nil if it doesn't exist.
// message +1
func (s *Storage) MilestoneCachedMessageOrNil(milestoneIndex milestone.Index) *CachedMessage {
cachedMilestone := s.CachedMilestoneOrNil(milestoneIndex) // milestone +1
if cachedMilestone == nil {
return nil
}
defer cachedMilestone.Release(true) // milestone -1
return s.CachedMessageOrNil(cachedMilestone.Milestone().MessageID) // message +1
}