Mir
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
src
include
client
mir
client_platform_factory.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2012 Canonical Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* Authored by: Alexandros Frantzis <alexandros.frantzis@canonical.com>
17
*/
18
#ifndef MIR_CLIENT_CLIENT_PLATFORM_FACTORY_H_
19
#define MIR_CLIENT_CLIENT_PLATFORM_FACTORY_H_
20
21
#include "
mir/module_deleter.h
"
22
#include <memory>
23
24
namespace
mir
25
{
26
namespace
client
27
{
28
29
class
ClientPlatform;
30
class
ClientContext;
31
32
class
ClientPlatformFactory
33
{
34
public
:
35
virtual
~ClientPlatformFactory
() =
default
;
36
37
virtual
std::shared_ptr<ClientPlatform>
create_client_platform
(
ClientContext
* context) = 0;
38
39
protected
:
40
ClientPlatformFactory
() =
default
;
41
ClientPlatformFactory
(
ClientPlatformFactory
const
& p) =
delete
;
42
ClientPlatformFactory
&
operator=
(
ClientPlatformFactory
const
& p) =
delete
;
43
};
44
45
extern
"C"
typedef
mir::UniqueModulePtr<ClientPlatform>
(*CreateClientPlatform)(
ClientContext
* context);
46
extern
"C"
typedef
bool (*
ClientPlatformProbe
)(
ClientContext
* context);
47
}
48
}
49
50
extern
"C"
mir::UniqueModulePtr<mir::client::ClientPlatform>
create_client_platform
(
mir::client::ClientContext
* context);
51
extern
"C"
bool
is_appropriate_module
(
mir::client::ClientContext
* context);
52
53
#endif
/* MIR_CLIENT_CLIENT_PLATFORM_FACTORY_H_ */
mir
All things Mir.
Definition:
atomic_callback.h:25
mir::client::ClientPlatformFactory::operator=
ClientPlatformFactory & operator=(ClientPlatformFactory const &p)=delete
mir::client::ClientPlatformFactory::create_client_platform
virtual std::shared_ptr< ClientPlatform > create_client_platform(ClientContext *context)=0
mir::UniqueModulePtr
std::unique_ptr< T, ModuleDeleter< T >> UniqueModulePtr
Use UniqueModulePtr to ensure that your loadable libray outlives instances created within it...
Definition:
module_deleter.h:83
mir::client::ClientPlatformFactory::~ClientPlatformFactory
virtual ~ClientPlatformFactory()=default
module_deleter.h
mir::client::ClientPlatformFactory
Definition:
client_platform_factory.h:32
mir::client::ClientContext
Definition:
client_context.h:29
mir::client::ClientPlatformProbe
bool(* ClientPlatformProbe)(ClientContext *context)
Definition:
client_platform_factory.h:46
is_appropriate_module
bool is_appropriate_module(mir::client::ClientContext *context)
Definition:
client_platform_factory.cpp:46
mir::client::ClientPlatformFactory::ClientPlatformFactory
ClientPlatformFactory()=default
Copyright © 2012-2015 Canonical Ltd.
Generated on Thu Sep 8 14:50:19 UTC 2016