commander interface

This commit is contained in:
Darien Raymond
2018-01-24 15:05:46 +01:00
parent 9cd0e90e99
commit 8923159aee
2 changed files with 73 additions and 0 deletions

View File

@@ -28,6 +28,7 @@ type Instance struct {
ihm syncInboundHandlerManager
ohm syncOutboundHandlerManager
clock syncClock
cmd syncCommander
features []Feature
id uuid.UUID
@@ -130,6 +131,10 @@ func (s *Instance) RegisterFeature(feature interface{}, instance Feature) error
s.ihm.Set(instance.(InboundHandlerManager))
case OutboundHandlerManager, *OutboundHandlerManager:
s.ohm.Set(instance.(OutboundHandlerManager))
case Clock, *Clock:
s.clock.Set(instance.(Clock))
case Commander, *Commander:
s.cmd.Set(instance.(Commander))
}
s.features = append(s.features, instance)
return nil
@@ -169,3 +174,8 @@ func (s *Instance) OutboundHandlerManager() OutboundHandlerManager {
func (s *Instance) Clock() Clock {
return &(s.clock)
}
// Commander returns the Commander used by this Instance. The returned Commander is always functional.
func (s *Instance) Commander() Commander {
return &(s.cmd)
}