• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

Analitza

  • sources
  • kde-4.14
  • kdeedu
  • analitza
  • analitza
builtinmethods.h
Go to the documentation of this file.
1 /*************************************************************************************
2  * Copyright (C) 2010 by Aleix Pol <aleixpol@kde.org> *
3  * *
4  * This program is free software; you can redistribute it and/or *
5  * modify it under the terms of the GNU General Public License *
6  * as published by the Free Software Foundation; either version 2 *
7  * of the License, or (at your option) any later version. *
8  * *
9  * This program is distributed in the hope that it will be useful, *
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12  * GNU General Public License for more details. *
13  * *
14  * You should have received a copy of the GNU General Public License *
15  * along with this program; if not, write to the Free Software *
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
17  *************************************************************************************/
18 
19 #ifndef BUILTINMETHODS_H
20 #define BUILTINMETHODS_H
21 #include <QVariant>
22 #include "analitzaexport.h"
23 #include "expressiontype.h"
24 #include <QStringList>
25 
26 namespace Analitza
27 {
28 
29 class Expression;
30 class ExpressionType;
31 class Object;
32 
33 class FunctionDefinition
34 {
35  public:
36  virtual ~FunctionDefinition() {}
37 
45  virtual Expression operator()(const QList<Expression>& args)=0;
46 };
47 
48 class PointerFunctionDefinition : public FunctionDefinition
49 {
50  public:
51  typedef Expression (*func)(const QList<Expression>& args);
52 
53  PointerFunctionDefinition(func call);
54  virtual Expression operator()(const QList<Expression>& args);
55  private:
56  func m_function;
57 };
58 
59 class ANALITZA_EXPORT BuiltinMethods
60 {
61  public:
62  ~BuiltinMethods();
64  void insertFunction(const QString& id, const ExpressionType& type, FunctionDefinition* f);
65 
67  bool contains(const QString& id) const { return m_functions.contains(id); }
68 
70  QMap<QString, ExpressionType> varTypes() const { return m_types; }
71 
73  FunctionDefinition* function(const QString& id) const { return m_functions.value(id); }
74 
76  QStringList identifiers() const { return m_functions.keys(); }
77  private:
78  QMap<QString, ExpressionType> m_types;
79  QHash<QString, FunctionDefinition*> m_functions;
80 };
81 
82 }
83 
84 #endif
Analitza::FunctionDefinition::operator()
virtual Expression operator()(const QList< Expression > &args)=0
Lets the user specify a function to be injected.
QMap
Analitza::FunctionDefinition::~FunctionDefinition
virtual ~FunctionDefinition()
Definition: builtinmethods.h:36
expressiontype.h
Analitza::ExpressionType
Definition: expressiontype.h:30
QHash
Analitza::PointerFunctionDefinition::func
Expression(* func)(const QList< Expression > &args)
Definition: builtinmethods.h:51
Analitza::BuiltinMethods::contains
bool contains(const QString &id) const
Definition: builtinmethods.h:67
QString
QList
QStringList
Analitza::PointerFunctionDefinition
Definition: builtinmethods.h:48
Analitza::BuiltinMethods
Definition: builtinmethods.h:59
analitzaexport.h
Analitza::PointerFunctionDefinition::operator()
virtual Expression operator()(const QList< Expression > &args)
Lets the user specify a function to be injected.
ANALITZA_EXPORT
#define ANALITZA_EXPORT
Definition: analitzaexport.h:31
Analitza::Expression
Represents a mathematical expression.
Definition: expression.h:45
Analitza::BuiltinMethods::identifiers
QStringList identifiers() const
Definition: builtinmethods.h:76
Analitza::BuiltinMethods::varTypes
QMap< QString, ExpressionType > varTypes() const
Definition: builtinmethods.h:70
Analitza::PointerFunctionDefinition::PointerFunctionDefinition
PointerFunctionDefinition(func call)
Analitza::FunctionDefinition
Definition: builtinmethods.h:33
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:11:37 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Analitza

Skip menu "Analitza"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal