diff options
Diffstat (limited to 'platform/android/src/conversion')
-rw-r--r-- | platform/android/src/conversion/collection.cpp | 32 | ||||
-rw-r--r-- | platform/android/src/conversion/collection.hpp | 18 | ||||
-rw-r--r-- | platform/android/src/conversion/color.cpp | 17 | ||||
-rw-r--r-- | platform/android/src/conversion/color.hpp | 18 | ||||
-rw-r--r-- | platform/android/src/conversion/constant.cpp | 62 | ||||
-rw-r--r-- | platform/android/src/conversion/constant.hpp | 110 | ||||
-rw-r--r-- | platform/android/src/conversion/conversion.hpp | 50 |
7 files changed, 0 insertions, 307 deletions
diff --git a/platform/android/src/conversion/collection.cpp b/platform/android/src/conversion/collection.cpp deleted file mode 100644 index 954a161baf..0000000000 --- a/platform/android/src/conversion/collection.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "collection.hpp" -#include "constant.hpp" - -namespace mbgl { -namespace android { -namespace conversion { - -std::vector<std::string> toVector(JNIEnv& env, const jni::Array<jni::String>& array) { - std::size_t len = array.Length(env); - std::vector<std::string> vector; - vector.reserve(len); - - for (std::size_t i = 0; i < len; i++) { - vector.push_back(jni::Make<std::string>(env, array.Get(env, i))); - } - - return vector; -} - -jni::Local<jni::Array<jni::String>> toArray(JNIEnv& env, const std::vector<std::string>& vector) { - auto result = jni::Array<jni::String>::New(env, vector.size()); - - for (std::size_t i = 0; i < vector.size(); i++) { - result.Set(env, i, jni::Make<jni::String>(env, vector.at(i))); - } - - return result; -} - -} -} -} diff --git a/platform/android/src/conversion/collection.hpp b/platform/android/src/conversion/collection.hpp deleted file mode 100644 index 322ebb62e0..0000000000 --- a/platform/android/src/conversion/collection.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include "conversion.hpp" - -#include <jni/jni.hpp> - -#include <vector> - -namespace mbgl { -namespace android { -namespace conversion { - -std::vector<std::string> toVector(JNIEnv& env, const jni::Array<jni::String>& array); -jni::Local<jni::Array<jni::String>> toArray(JNIEnv& env, const std::vector<std::string>&); - -} -} -} diff --git a/platform/android/src/conversion/color.cpp b/platform/android/src/conversion/color.cpp deleted file mode 100644 index ce85943e61..0000000000 --- a/platform/android/src/conversion/color.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "color.hpp" - -namespace mbgl { -namespace android { -namespace conversion { - -Result<mbgl::Color> Converter<mbgl::Color, int>::operator()(jni::JNIEnv&, const int& color) const { - float r = (color >> 16) & 0xFF; - float g = (color >> 8) & 0xFF; - float b = (color) & 0xFF; - float a = (color >> 24) & 0xFF; - return { mbgl::Color( r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f ) }; -} - -} // namespace conversion -} // namespace style -} // namespace mbgl diff --git a/platform/android/src/conversion/color.hpp b/platform/android/src/conversion/color.hpp deleted file mode 100644 index 2b4144b933..0000000000 --- a/platform/android/src/conversion/color.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include "conversion.hpp" - -#include <mbgl/util/color.hpp> - -namespace mbgl { -namespace android { -namespace conversion { - -template <> -struct Converter<mbgl::Color, int> { - Result<mbgl::Color> operator()(jni::JNIEnv&, const int& color) const; -}; - -} // namespace conversion -} // namespace style -} // namespace mbgl diff --git a/platform/android/src/conversion/constant.cpp b/platform/android/src/conversion/constant.cpp deleted file mode 100644 index 46a91026df..0000000000 --- a/platform/android/src/conversion/constant.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "constant.hpp" -#include "collection.hpp" -#include "../style/formatted.hpp" - -#include <mbgl/util/string.hpp> - -namespace mbgl { -namespace android { -namespace conversion { - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, bool>::operator()(jni::JNIEnv& env, const bool& value) const { - return jni::Box(env, value ? jni::jni_true : jni::jni_false); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, float>::operator()(jni::JNIEnv& env, const float& value) const { - return jni::Box(env, value); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, double>::operator()(jni::JNIEnv& env, const double& value) const { - return jni::Box(env, value); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, std::string>::operator()(jni::JNIEnv& env, const std::string& value) const { - return jni::Make<jni::String>(env, value); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, Color>::operator()(jni::JNIEnv& env, const Color& value) const { - return jni::Make<jni::String>(env, value.stringify()); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, style::expression::Formatted>::operator()(jni::JNIEnv& env, const style::expression::Formatted& value) const { - return Formatted::New(env, value); -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, std::vector<std::string>>::operator()(jni::JNIEnv& env, const std::vector<std::string>& value) const { - auto result = jni::Array<jni::String>::New(env, value.size()); - - for (std::size_t i = 0; i < value.size(); i++) { - result.Set(env, i, jni::Make<jni::String>(env, value.at(i))); - } - - return result; -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, std::vector<float>>::operator()(jni::JNIEnv& env, const std::vector<float>& value) const { - auto result = jni::Array<jni::Float>::New(env, value.size()); - - for (std::size_t i = 0; i < value.size(); i++) { - result.Set(env, i, jni::Box(env, value.at(i))); - } - - return result; -} - -Result<jni::Local<jni::Object<>>> Converter<jni::Local<jni::Object<>>, style::expression::Image>::operator()( - jni::JNIEnv& env, const style::expression::Image& value) const { - return jni::Make<jni::String>(env, value.id()); -} - -} // namespace conversion -} // namespace style -} // namespace mbgl diff --git a/platform/android/src/conversion/constant.hpp b/platform/android/src/conversion/constant.hpp deleted file mode 100644 index a9239fe845..0000000000 --- a/platform/android/src/conversion/constant.hpp +++ /dev/null @@ -1,110 +0,0 @@ -#pragma once - -#include "conversion.hpp" - -#include <mbgl/util/color.hpp> -#include <mbgl/util/enum.hpp> - -#include <mbgl/style/expression/formatted.hpp> -#include <mbgl/style/expression/image.hpp> - -#include <jni/jni.hpp> - -#include <string> -#include <array> -#include <vector> - -namespace mbgl { -namespace android { -namespace conversion { - -template <> -struct Converter<jni::Local<jni::Object<>>, bool> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const bool& value) const; -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, float> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const float& value) const; -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, double> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const double& value) const; -}; - -/** - * All integrals. java is limited to 64 bit signed, so... - * TODO: use BigDecimal for > 64 / unsigned? - */ -template<typename T> -struct Converter<jni::Local<jni::Object<>>, T, typename std::enable_if<std::is_integral<T>::value>::type> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const T& value) const { - return jni::Box(env, jni::jlong(value)); - } -}; - -// TODO: convert integral types to primitive jni types - -template <> -struct Converter<jni::Local<jni::Object<>>, std::string> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const std::string& value) const; -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, Color> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const Color& value) const; -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, style::expression::Formatted> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const style::expression::Formatted& value) const; -}; - -template <std::size_t N> -struct Converter<jni::Local<jni::Object<>>, std::array<float, N>> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const std::array<float, N>& value) const { - std::vector<float> v; - for (const float& id : value) { - v.push_back(id); - } - return convert<jni::Local<jni::Object<>>, std::vector<float>>(env, v); - } -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, std::vector<std::string>> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const std::vector<std::string>& value) const; -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, std::vector<float>> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const std::vector<float>& value) const; -}; - -template <class T> -struct Converter<jni::Local<jni::Object<>>, T, typename std::enable_if_t<std::is_enum<T>::value>> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const T& value) const { - return convert<jni::Local<jni::Object<>>, std::string>(env, Enum<T>::toString(value)); - } -}; - -template <class T> -struct Converter<jni::Local<jni::Object<>>, std::vector<T>, typename std::enable_if_t<std::is_enum<T>::value>> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const std::vector<T>& value) const { - auto result = jni::Array<jni::String>::New(env, value.size()); - for (std::size_t i = 0; i < value.size(); ++i) { - result.Set(env, i, jni::Make<jni::String>(env, Enum<T>::toString(value.at(i)))); - } - return result; - } -}; - -template <> -struct Converter<jni::Local<jni::Object<>>, style::expression::Image> { - Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const style::expression::Image& value) const; -}; - -} // namespace conversion -} // namespace android -} // namespace mbgl diff --git a/platform/android/src/conversion/conversion.hpp b/platform/android/src/conversion/conversion.hpp deleted file mode 100644 index d1766f9755..0000000000 --- a/platform/android/src/conversion/conversion.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once - -#include <mbgl/util/variant.hpp> - -#include <jni/jni.hpp> - -#include <string> - -namespace mbgl { -namespace android { -namespace conversion { - -struct Error { std::string message; }; - -template <class T> -class Result : private variant<T, Error> { -public: - using variant<T, Error>::variant; - - explicit operator bool() const { - return this->template is<T>(); - } - - T& operator*() { - assert(this->template is<T>()); - return this->template get<T>(); - } - - const T& operator*() const { - assert(this->template is<T>()); - return this->template get<T>(); - } - - const Error& error() const { - assert(this->template is<Error>()); - return this->template get<Error>(); - } -}; - -template <class T, class V, class Enable = void> -struct Converter; - -template <class T, typename V, class...Args> -Result<T> convert(jni::JNIEnv& env, const V& value, Args&&...args) { - return Converter<T, V>()(env, value, std::forward<Args>(args)...); -} - -} // namespace conversion -} // namespace android -} // namespace mbgl |