diff options
Diffstat (limited to 'Sluift/LuaElementConvertor.h')
-rw-r--r-- | Sluift/LuaElementConvertor.h | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/Sluift/LuaElementConvertor.h b/Sluift/LuaElementConvertor.h index 187ccf1..eb3a24f 100644 --- a/Sluift/LuaElementConvertor.h +++ b/Sluift/LuaElementConvertor.h @@ -1,28 +1,39 @@ /* - * Copyright (c) 2013 Remko Tronçon - * Licensed under the GNU General Public License. + * Copyright (c) 2013-2017 Isode Limited. + * All rights reserved. * See the COPYING file for more information. */ #pragma once -#include <Swiften/Base/Override.h> +#include <memory> +#include <string> -#include <boost/shared_ptr.hpp> #include <boost/optional.hpp> struct lua_State; namespace Swift { - class Payload; + class Element; - class LuaElementConvertor { - public: - static boost::optional<std::string> NO_RESULT; + class LuaElementConvertor { + public: + static boost::optional<std::string> NO_RESULT; - virtual ~LuaElementConvertor(); + struct Documentation { + Documentation(const std::string& className, const std::string& description) : + className(className), description(description) {} + std::string className; + std::string description; + }; - virtual boost::shared_ptr<Payload> convertFromLua(lua_State*, int index, const std::string& type) = 0; - virtual boost::optional<std::string> convertToLua(lua_State*, boost::shared_ptr<Payload>) = 0; - }; + virtual ~LuaElementConvertor(); + + virtual std::shared_ptr<Element> convertFromLua(lua_State*, int index, const std::string& type) = 0; + virtual boost::optional<std::string> convertToLua(lua_State*, std::shared_ptr<Element>) = 0; + + virtual boost::optional<Documentation> getDocumentation() const { + return boost::optional<Documentation>(); + } + }; } |