Provided by: erlang-manpages_22.0.7+dfsg-1build1_all bug

NAME

       ssl_session_cache_api - TLS session cache API

DESCRIPTION

       Defines  the API for the TLS session cache so that the data storage scheme can be replaced
       by defining a new callback module implementing this API.

DATA TYPES

       session_cache_ref() = any()

       session_cache_key() = {partial_key(), ssl:session_id()}

              A key to an entry in the session cache.

       partial_key()

              The opaque part of the key. Does not need to be handled by the callback.

       session()

              The session data that is stored for each session.

EXPORTS

       delete(Cache, Key) -> _

              Types:

                 Cache =  session_cache_ref()
                 Key = session_cache_key()

              Deletes a cache entry. Is only called from the cache handling process.

       foldl(Fun, Acc0, Cache) -> Acc

              Types:

                 Fun = fun()
                 Acc0 = Acc = term()
                 Cache =  session_cache_ref()

              Calls Fun(Elem, AccIn) on successive elements of the cache, starting with AccIn  ==
              Acc0.  Fun/2  must  return a new accumulator, which is passed to the next call. The
              function returns the final value of the accumulator. Acc0 is returned if the  cache
              is empty.

       init(Args) -> Cache

              Types:

                 Cache =  session_cache_ref()
                 Args = proplists:proplist()

              Includes  property  {role,  client | server}. Currently this is the only predefined
              property,  there  can  also  be  user-defined  properties.  See  also   application
              environment variable session_cb_init_args.

              Performs  possible  initializations of the cache and returns a reference to it that
              is used as parameter to the other API functions. Is called by  the  cache  handling
              processes  init  function,  hence  putting  the same requirements on it as a normal
              process init function.  This  function  is  called  twice  when  starting  the  SSL
              application,  once  with  the role client and once with the role server, as the SSL
              application must be prepared to take on both roles.

       lookup(Cache, Key) -> Entry

              Types:

                 Cache =  session_cache_ref()
                 Key = session_cache_key()
                 Session = session() | undefined

              Looks up a cache entry. Is to be callable from any process.

       select_session(Cache, PartialKey) -> [Session]

              Types:

                 Cache =  session_cache_ref()
                 PartialKey =  partial_key()
                 Session = session()

              Selects sessions that can be reused. Is to be callable from any process.

       size(Cache) -> integer()

              Types:

                 Cache =  session_cache_ref()

              Returns the number of sessions in the cache. If size exceeds the maximum number  of
              sessions,  the  current  cache  entries  will  be  invalidated  regardless of their
              remaining lifetime. Is to be callable from any process.

       terminate(Cache) -> _

              Types:

                 Cache =  session_cache_ref()
                   As returned by init/0

              Takes care of possible cleanup that is  needed  when  the  cache  handling  process
              terminates.

       update(Cache, Key, Session) -> _

              Types:

                 Cache =  session_cache_ref()
                 Key = session_cache_key()
                 Session = session()

              Caches  a  new  session  or  updates an already cached one. Is only called from the
              cache handling process.