示例#1
0
        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));
        }
示例#2
0
        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();
        }
示例#3
0
 internal void removeServiceListener(ServiceListener listener)
 {
     serviceListenerList.Remove(listener);
 }
示例#4
0
 internal void addServiceListener(ServiceListener listener, string filter)
 {
     serviceListenerList.Add(listener);
 }
示例#5
0
 public void removeServiceListener(ServiceListener listener)
 {
     serviceListenerList.Remove(listener);
     framework.removeServiceListener(listener);
 }
示例#6
0
 public void addServiceListener(ServiceListener listener)
 {
     addServiceListener(listener, null);
 }
示例#7
0
 public void addServiceListener(ServiceListener listener, string filter)
 {
     framework.addServiceListener(listener, filter);
     serviceListenerList.Add(listener);
 }