diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-11 21:59:21 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-11 21:59:21 +0100 |
commit | 89d11c54d08ce78825ff7bcecdf44e3dfdfc9c17 (patch) | |
tree | 58e6339570758815209382d1f53d93864d4d6e99 /src/core/script/Object.hpp | |
parent | 6940aa0e6837f9d83f9b5c5b37d4fd7747c95c67 (diff) |
removed legacy files
Diffstat (limited to 'src/core/script/Object.hpp')
-rw-r--r-- | src/core/script/Object.hpp | 144 |
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_ */ - |