summaryrefslogtreecommitdiff
path: root/src/core/script/Object.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-11 21:59:21 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-11 21:59:21 +0100
commit89d11c54d08ce78825ff7bcecdf44e3dfdfc9c17 (patch)
tree58e6339570758815209382d1f53d93864d4d6e99 /src/core/script/Object.hpp
parent6940aa0e6837f9d83f9b5c5b37d4fd7747c95c67 (diff)
removed legacy files
Diffstat (limited to 'src/core/script/Object.hpp')
-rw-r--r--src/core/script/Object.hpp144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/core/script/Object.hpp b/src/core/script/Object.hpp
deleted file mode 100644
index 350f800..0000000
--- a/src/core/script/Object.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- Ousía
- Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _OBJECT_HPP_
-#define _OBJECT_HPP_
-
-#include <string>
-#include <map>
-
-#include "Function.hpp"
-
-namespace ousia {
-namespace script {
-
-// TODO: Check names for being proper identifiers!
-
-/**
- * The Property struct represents an object property with corresponding getter
- * and setter function.
- */
-struct Property {
- /**
- * Constructor of the Property struct. Copies the given getter and setter.
- *
- * @param get is the getter that should be used for the property.
- * @param set is the setter that should be used for the property.
- */
- Property(const Getter &get, const Setter &set) : get(get), set(set) {};
-
- /**
- * Constructor of the Property struct. Creates new Getter and Setter
- * instances from the given parameters.
- *
- * @param type is the VariantType used within the getter function.
- * @param get is the pointer to the getter function.
- * @param set is the pointer to the setter function.
- * @param data is the used-defined data that should be used.
- */
- Property(VariantType type, const GetterCallback get,
- const SetterCallback set, void *data = nullptr)
- : get(get, data), set(type, set, data) {};
-
- /**
- * Getter function.
- */
- const Getter get;
-
- /**
- * Setter function.
- */
- const Setter set;
-};
-
-/**
- * The Object type represents an object on the script host. An object consits of
- * properties with corresponding getter and setter functions and a number of
- * methods which can be called on the object.
- */
-class Object {
-private:
- /**
- * Pointer to user defined data that is automatically passed to the
- * underlying functions.
- */
- void *data;
-
- /**
- * Map used internally for storing all properties along with their
- * corresponding
- * name.
- */
- std::map<std::string, Property> properties;
-
- /**
- * Map used internally for storing all methods along with their
- * corresponding name.
- */
- std::map<std::string, HostFunction> methods;
-
-public:
- Object() : data(nullptr){};
-
- Object(void *data) : data(data){};
-
- bool hasElement(const std::string &name) const;
-
- void addProperty(const std::string &name, const Property &property);
-
- void addProperty(const std::string &name, const Getter &get, const Setter &set);
-
- void addProperty(const std::string &name, VariantType type,
- const GetterCallback get, const SetterCallback set);
-
- void addReadonlyProperty(const std::string &name, const Getter &get);
-
- void addReadonlyProperty(const std::string &name, const GetterCallback get);
-
- void addMethod(const std::string &name, const HostFunction &fun);
-
- void addMethod(const std::string &name, const HostFunctionCallback fun);
-
- void addMethod(const std::string &name, const HostFunctionCallback fun,
- const std::vector<Argument> &signature);
-
- const Property *getProperty(const std::string &name) const;
-
- const Function *getMethod(const std::string &name) const;
-
- bool removeElement(const std::string &name);
-
- bool removeProperty(const std::string &name);
-
- bool removeMethod(const std::string &name);
-
- const std::map<std::string, Property> &getProperties() const
- {
- return properties;
- }
-
- const std::map<std::string, HostFunction> &getMethods() const
- {
- return methods;
- }
-};
-}
-}
-
-#endif /* _OBJECT_HPP_ */
-