public ReactiveManager()
{
Receive<CreateSubscriber>(createSubscriber => CreateSubscriberActor(createSubscriber));
Receive<CreateSubject>(createSubjectManager =>
{
IActorRef subjectManager = CreateSubjectManager(createSubjectManager);
Sender.Tell(new SubjectManagerRef(subjectManager));
});
Receive<Terminated>(terminated =>
{
Type baseMessageType;
if (!_subscriberManagerReverseLookup.TryGetValue(terminated.ActorRef, out baseMessageType))
return;
// Actor has terminated; remove all references to it.
_subscriberManagers.Remove(baseMessageType);
_subscriberManagerReverseLookup.Remove(terminated.ActorRef);
});
}