github.com/Axway/agent-sdk@v1.1.101/pkg/agent/events/sequence.go (about) 1 package events 2 3 import ( 4 agentcache "github.com/Axway/agent-sdk/pkg/agent/cache" 5 ) 6 7 // SequenceProvider - Interface to provide event sequence ID to harvester client to fetch events 8 type SequenceProvider interface { 9 GetSequence() int64 10 SetSequence(sequenceID int64) 11 } 12 13 // agentSequenceManager - represents the sequence manager for an agent 14 type agentSequenceManager struct { 15 cacheManager agentcache.Manager 16 watchTopicName string 17 } 18 19 // GetSequence - return the watch sequenceID 20 func (s *agentSequenceManager) GetSequence() int64 { 21 return s.cacheManager.GetSequence(s.watchTopicName) 22 } 23 24 // SetSequence - updates the sequenceID in the cache 25 func (s *agentSequenceManager) SetSequence(sequenceID int64) { 26 s.cacheManager.AddSequence(s.watchTopicName, sequenceID) 27 } 28 29 // NewSequenceProvider creates a new SequenceProvider 30 func NewSequenceProvider(cacheManager agentcache.Manager, watchTopicName string) SequenceProvider { 31 return &agentSequenceManager{ 32 cacheManager: cacheManager, 33 watchTopicName: watchTopicName, 34 } 35 }