Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
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
72
73
74
75
76namespace steam {
77namespace mobject {
78namespace 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
Build a single inheritance chain of template instantiations.
Collection of configured implementation-level services to provide by the Session.
static FRONT & current
intended to be hard-wired to SessManagerImpl singleton
API & get()
access an service by explicit downcast.
Helpers for working with lib::meta::Types (i.e.
variadic sequence of types
Definition typelist.hpp:102
Namespace of Session and user visible high-level objects.
Definition sequence.hpp:65
Access point to a single implementation-level API.
Steam-Layer implementation namespace root.
Primary Interface to the current Session.