package eliom

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Eliom_notif.Make_SimpleSource

Use this functor if you have no need of customising your notifications with client-specific data.

Parameters

module A : ARG_SIMPLE

Signature

Sourcetype identity

identity is the type of values used to differentiate one listener from another. Typically it will be a user, but it could also for instance be a chat window.

Sourcetype key = A.key

key is the type of values designating a given resource.

Sourcetype server_notif = A.notification

server notification type; Can be different from client_notif.

Sourcetype client_notif = A.notification

client notification type; Can be different from server_notif.

Sourceval init : unit -> unit Lwt.t

Initialise the notification module for the current client. This function needs to be called before using most other functions of this module. It isn't called implicitly during module instantiation because it relies on identity data which might not be available yet.

Sourceval deinit : unit -> unit

Deinitialise/deactivate the notification module for the current client.

Sourceval listen : key -> unit

Make client process listen on data whose index is key

Sourceval unlisten : key -> unit

Stop listening on data key

Sourcemodule Ext : sig ... end
Sourceval notify : ?notfor:[ `Me | `Id of identity ] -> key -> server_notif -> unit

Call notify key n to send a notification n to all clients currently listening on data referenced by key.

If ~notfor is `Me, notification will not be sent to the tab currently doing the request (the one which caused the notification to happen). Note that if notify is called with ~notfor:`Me outside of a request it will fail. If it is `Id id it won't be sent to the destination defined by id.

Sourceval client_ev : unit -> (key * client_notif) Eliom_react.Down.t

Returns the client react event.

'a Eliom_react.Down.t = 'a React.E.t on client side.

Map a function on this event to react to notifications from the server. For example:

let%client handle_notification some_stuff ev = ...

let%server something some_stuff = ignore %client (ignore (React.E.map (handle_notification ~%some_stuff) ~%(Notif_module.client_ev ()) ) : unit)

Sourceval clean : unit -> unit

Call clean () to clear the tables from empty data.

OCaml

Innovation. Community. Security.