|
|
@@ -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)
|
|
|
+}
|