Add more assertions.
[tagua/yd.git] / src / variant.h
blob3836ff306e6f425d253d399035ecabd1677aabb8
1 /*
2 Copyright (c) 2007 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2007 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 */
11 #ifndef CORE__VARIANT_H
12 #define CORE__VARIANT_H
14 #include <core/repository.h>
16 /**
17 * @brief A Variant instance represents a game supported in Tagua.
19 class TAGUA_EXPORT Variant {
20 QString m_name;
21 QString m_proxy;
22 bool m_hidden;
23 Repository* m_repo;
24 public:
25 Variant(const QString& name, Repository* repo,
26 const QString& proxy = QString(),
27 bool hidden = false);
29 ~Variant();
31 QString name() const;
33 QString proxy() const;
35 bool hidden() const;
37 const Repository* repository() const;
38 Repository* repository();
41 template <typename Interface>
42 Interface* requestComponent(Variant* var, const QString& component) {
43 return requestInterface<Interface>(var->repository()->getComponent(component));
46 #endif // CORE__VARIANT_H