------------------------------------------------------------------------------ -- Ada Web Server -- -- -- -- Copyright (C) 2013, AdaCore -- -- -- -- This is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the -- -- Free Software Foundation; either version 3, or (at your option) any -- -- later version. This software is distributed in the hope that it will -- -- be useful, but WITHOUT ANY WARRANTY; without even the implied warranty -- -- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- -- General Public License for more details. -- -- -- -- You should have received a copy of the GNU General Public License -- -- distributed with this software; see file COPYING3. If not, go -- -- to http://www.gnu.org/licenses for a complete copy of the license. -- ------------------------------------------------------------------------------ with Ada.Containers.Vectors; with Ada.Strings.Unbounded; with WebSock_CB; package Notification_Center is use Ada.Strings.Unbounded; type Subscription is record Socket : WebSock_CB.Object; Key : Unbounded_String; end record; package Subscription_Vectors is new Ada.Containers.Vectors (Natural, Subscription); protected Protected_Center is procedure Subscribe (Socket : WebSock_CB.Object; Key : String); procedure Unsubscribe (Socket : WebSock_CB.Object; Key : String); procedure Unsubscribe (Socket : WebSock_CB.Object); procedure Notify (Key : String); function Get_Subscriptions_For_Key (Key : String) return Subscription_Vectors.Vector; private Subscriptions : Subscription_Vectors.Vector; end Protected_Center; procedure Unprotected_Notify (Key : String); end Notification_Center;