public static IFhirService GetFhirService(Uri baseUri, IFhirExtensionsBuilder extensionsBuilder, IStorageBuilder storageBuilder, //we won't need this anymore if we can remove the Transfer dependency for IFhirService IServiceListener[] listeners = null) { IGenerator generator = storageBuilder.GetStore <IGenerator>(); IFhirServiceExtension[] extensions = extensionsBuilder.GetExtensions().ToArray(); IServiceListener[] computedListeners = (listeners ?? Enumerable.Empty <IServiceListener>()) .Union(extensions.OfType <IServiceListener>()) .ToArray(); ICompositeServiceListener serviceListener = new ServiceListener(new Localhost(baseUri), computedListeners); Transfer transfer = new Transfer(generator, new Localhost(baseUri)); return(new FhirService(extensions, GetFhirResponseFactory(baseUri), transfer, serviceListener)); }
public MainPage() { InitializeComponent(); this.UIDispatcher = (DispatchedHandler a) => CoreWindow.GetForCurrentThread().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, a); this.chatServiceTag = new TypeTag("chat"); MyChatUsersViewModel = (ChatUsersViewModel)Resources["ChatUsersViewModel"]; this.chatUsers = new Dictionary<Guid, RemoteReference>(); // Set up our own name string nickname = "User" + new Random().Next(1, 99); ui_nickname.Text = nickname; ui_nickname.IsEnabled = false; // Set up our own user and all callbacks myChatUser = new ChatUser(nickname, this.Dispatcher); myChatUser.PartnerLeftChatEvent += PartnerLeftChat; myChatUser.InviteReceivedEvent += InviteReceivedFromUser; myChatUser.AcceptInviteEvent += AcceptInviteByUser; myChatUser.RejectInviteEvent += RejectInviteByUser; myChatUser.InviteAcceptedEvent += InviteAcceptedByUser; myChatUser.InviteRejectedEvent += InviteRejectedByUser; // Set up the listener callbacks for joining/leaving of users this.userListener = new ServiceListener<RemoteReference>(); userListener.IsDiscovered += UserListener_IsDiscovered; userListener.IsDisconnected += UserListener_IsDisconnected; userListener.IsReconnected += UserListener_IsDiscovered; EventLoop.Instance.Whenever(chatServiceTag, userListener); // Export our service myServicePublication = EventLoop.Instance.Broadcast(chatServiceTag, myChatUser); // Go online on the network NetPOC.Network.NetworkControl.Network networkObj = EventLoop.Instance.GoOnline(); }
internal void removeServiceListener(ServiceListener listener) { serviceListenerList.Remove(listener); }
internal void addServiceListener(ServiceListener listener, string filter) { serviceListenerList.Add(listener); }
public void removeServiceListener(ServiceListener listener) { serviceListenerList.Remove(listener); framework.removeServiceListener(listener); }
public void addServiceListener(ServiceListener listener) { addServiceListener(listener, null); }
public void addServiceListener(ServiceListener listener, string filter) { framework.addServiceListener(listener, filter); serviceListenerList.Add(listener); }