Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultObserver ¶
type DefaultObserver struct {
gpsprot.DefaultHandler
}
DefaultObserver is a no-op implementation of Observer
func (*DefaultObserver) NavEpochPV ¶
func (o *DefaultObserver) NavEpochPV(_ *gpsprot.NavEpochMsg, _ *gpsprot.PVMsgBundle, _ time.Time)
NavEpochPV implements Observer as a no-op
func (*DefaultObserver) Release ¶
func (o *DefaultObserver) Release()
Release implements Observer as a no-op
func (*DefaultObserver) ReopenLog ¶
func (o *DefaultObserver) ReopenLog()
ReopenLog implements Observer as a no-op
func (*DefaultObserver) Sample ¶
func (o *DefaultObserver) Sample(data phcsync.Sample)
Sample implements phcsync.Sampler as a no-op
type MultiObserver ¶
type MultiObserver struct {
*gpsprot.MultiHandler
}
MultiObserver fans out calls to multiple observers
func NewMultiObserver ¶
func NewMultiObserver(observers ...Observer) *MultiObserver
NewMultiObserver creates a new MultiObserver that fans out to multiple observers
func (*MultiObserver) NavEpochPV ¶
func (m *MultiObserver) NavEpochPV(msg *gpsprot.NavEpochMsg, pv *gpsprot.PVMsgBundle, tRead time.Time)
NavEpochPV implements Observer by type-asserting handlers to Observer
func (*MultiObserver) Release ¶
func (m *MultiObserver) Release()
Release implements Observer by type-asserting handlers to Observer
func (*MultiObserver) ReopenLog ¶
func (m *MultiObserver) ReopenLog()
ReopenLog implements Observer by type-asserting handlers to Observer
func (*MultiObserver) Sample ¶
func (m *MultiObserver) Sample(data phcsync.Sample)
Sample implements phcsync.Sampler by type-asserting handlers to Sampler
type Observer ¶
type Observer interface {
phcsync.Sampler
gpsprot.MsgHandler
// Tick delivers a filled TimeMsg (TAI+UTC populated, rounded to ms)
// once per epoch, as soon as the first valid TimeMsg arrives.
Tick(msg *gpsprot.TimeMsg, tRead time.Time)
// Relative order with respect to NavEpoch is undefined;
// observers should use one or the other, not both.
NavEpochPV(msg *gpsprot.NavEpochMsg, pv *gpsprot.PVMsgBundle, tRead time.Time)
// ReopenLog handles log rotation (e.g., on SIGHUP signal)
ReopenLog()
// Release releases any resources used by the observer
Release()
}
Observer provides unified observability interface