Lumiera  0.pre.03
»edit your freedom«
session-services.hpp
Go to the documentation of this file.
1 /*
2  SESSION-SERVICES.hpp - accessing Steam-Layer internal session implementation services
3 
4  Copyright (C)
5  2008, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
67 #ifndef MOBJECT_SESSION_SESSION_SERVICES_H
68 #define MOBJECT_SESSION_SESSION_SERVICES_H
69 
71 #include "lib/meta/generator.hpp"
72 
73 
74 
75 
76 namespace steam {
77 namespace mobject {
78 namespace session {
79 
81  using lib::meta::Types;
82 
83 
92  template<class API, class IMPL>
94 
95 
107  template< typename APIS
108  , class FRONT
109  , class SESS
110  >
112  : public InstantiateChained< typename APIS::List // for each of the API types...
113  , ServiceAccessPoint // instantiate a service implementation
114  , SESS // and stack all these on top of SessionImpl
115  >
116  {
117  public:
118  static FRONT& current;
119 
125  template<class API>
126  API& get() { return *this; }
127  };
128 
129 
130 
131 }}} // namespace steam::mobject::session
132 #endif
Collection of configured implementation-level services to provide by the Session. ...
static FRONT & current
intended to be hard-wired to SessManagerImpl singleton
Access point to a single implementation-level API.
Helpers for working with lib::meta::Types (i.e.
Steam-Layer implementation namespace root.
Namespace of Session and user visible high-level objects.
Definition: sequence.hpp:65
Build a single inheritance chain of template instantiations.
Definition: generator.hpp:120
Primary Interface to the current Session.