summaryrefslogtreecommitdiffstats
path: root/logic/OneSixRule.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-05-08 21:20:10 +0200
committerPetr Mrázek <peterix@gmail.com>2014-06-09 01:38:30 +0200
commit8a3a0f5a529a95c7511436051b63887dff158c50 (patch)
tree0162e0d6a37cd5a5b3aa5facf6ba6561e33f60bf /logic/OneSixRule.h
parent69a9ca39ad0685663092a4455de3865715f0122e (diff)
downloadMultiMC-8a3a0f5a529a95c7511436051b63887dff158c50.tar
MultiMC-8a3a0f5a529a95c7511436051b63887dff158c50.tar.gz
MultiMC-8a3a0f5a529a95c7511436051b63887dff158c50.tar.lz
MultiMC-8a3a0f5a529a95c7511436051b63887dff158c50.tar.xz
MultiMC-8a3a0f5a529a95c7511436051b63887dff158c50.zip
Reorganize logic code.
Diffstat (limited to 'logic/OneSixRule.h')
-rw-r--r--logic/OneSixRule.h98
1 files changed, 0 insertions, 98 deletions
diff --git a/logic/OneSixRule.h b/logic/OneSixRule.h
deleted file mode 100644
index 426e2886..00000000
--- a/logic/OneSixRule.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2013 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <QString>
-
-#include "logic/OneSixLibrary.h"
-
-enum RuleAction
-{
- Allow,
- Disallow,
- Defer
-};
-
-RuleAction RuleAction_fromString(QString);
-QList<std::shared_ptr<Rule>> rulesFromJsonV4(const QJsonObject &objectWithRules);
-
-class Rule
-{
-protected:
- RuleAction m_result;
- virtual bool applies(OneSixLibrary *parent) = 0;
-
-public:
- Rule(RuleAction result) : m_result(result)
- {
- }
- virtual ~Rule() {};
- virtual QJsonObject toJson() = 0;
- RuleAction apply(OneSixLibrary *parent)
- {
- if (applies(parent))
- return m_result;
- else
- return Defer;
- }
- ;
-};
-
-class OsRule : public Rule
-{
-private:
- // the OS
- OpSys m_system;
- // the OS version regexp
- QString m_version_regexp;
-
-protected:
- virtual bool applies(OneSixLibrary *)
- {
- return (m_system == currentSystem);
- }
- OsRule(RuleAction result, OpSys system, QString version_regexp)
- : Rule(result), m_system(system), m_version_regexp(version_regexp)
- {
- }
-
-public:
- virtual QJsonObject toJson();
- static std::shared_ptr<OsRule> create(RuleAction result, OpSys system,
- QString version_regexp)
- {
- return std::shared_ptr<OsRule>(new OsRule(result, system, version_regexp));
- }
-};
-
-class ImplicitRule : public Rule
-{
-protected:
- virtual bool applies(OneSixLibrary *)
- {
- return true;
- }
- ImplicitRule(RuleAction result) : Rule(result)
- {
- }
-
-public:
- virtual QJsonObject toJson();
- static std::shared_ptr<ImplicitRule> create(RuleAction result)
- {
- return std::shared_ptr<ImplicitRule>(new ImplicitRule(result));
- }
-};