diff options
-rw-r--r-- | binding.gyp | 2 | ||||
-rw-r--r-- | src/node_log.cpp | 38 | ||||
-rw-r--r-- | src/node_log.hpp | 17 | ||||
-rw-r--r-- | src/node_mapbox_gl_native.cpp | 2 | ||||
m--------- | vendor/mbgl | 9 |
5 files changed, 28 insertions, 40 deletions
diff --git a/binding.gyp b/binding.gyp index 05e9347c37..a359f72bd7 100644 --- a/binding.gyp +++ b/binding.gyp @@ -35,7 +35,7 @@ "CLANG_CXX_LIBRARY": "libc++", "CLANG_CXX_LANGUAGE_STANDARD":"c++11", "GCC_VERSION": "com.apple.compilers.llvm.clang.1_0", - 'MACOSX_DEPLOYMENT_TARGET': '10.7', + 'MACOSX_DEPLOYMENT_TARGET': '10.9', 'OTHER_CPLUSPLUSFLAGS': [ '<@(cflags_cc)' ], 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', } diff --git a/src/node_log.cpp b/src/node_log.cpp index f39536a5a2..16cfdbdf4e 100644 --- a/src/node_log.cpp +++ b/src/node_log.cpp @@ -1,29 +1,27 @@ #include "node_log.hpp" -#include <cstdarg> - namespace node_mbgl { -struct NodeLogBackend::Message { +struct NodeLogObserver::LogMessage { mbgl::EventSeverity severity; mbgl::Event event; int64_t code; std::string text; }; -NodeLogBackend::NodeLogBackend(v8::Handle<v8::Object> target) - : queue(new Queue(uv_default_loop(), [this](Message &message) { +NodeLogObserver::NodeLogObserver(v8::Handle<v8::Object> target) + : queue(new Queue(uv_default_loop(), [this](LogMessage &message) { NanScope(); auto msg = v8::Object::New(); msg->Set(NanNew("class"), NanNew(mbgl::EventClass(message.event).c_str())); msg->Set(NanNew("severity"), NanNew(mbgl::EventSeverityClass(message.severity).c_str())); + if (message.code != -1) { + msg->Set(NanNew("code"), NanNew(double(message.code))); + } if (!message.text.empty()) { msg->Set(NanNew("text"), NanNew(message.text)); } - if (message.code != 0) { - msg->Set(NanNew("code"), NanNew(double(message.code))); - } v8::Local<v8::Value> argv[] = { NanNew("message"), msg }; auto emit = module->Get(NanNew("emit"))->ToObject(); @@ -36,29 +34,13 @@ NodeLogBackend::NodeLogBackend(v8::Handle<v8::Object> target) queue->unref(); } -NodeLogBackend::~NodeLogBackend() { +NodeLogObserver::~NodeLogObserver() { queue->stop(); } -void NodeLogBackend::record(mbgl::EventSeverity severity, mbgl::Event event, const std::string &msg) { - queue->send({ severity, event, 0, msg }); -} - -void NodeLogBackend::record(mbgl::EventSeverity severity, mbgl::Event event, const char* format, ...) { - char msg[512]; - va_list args; - va_start(args, format); - vsnprintf(msg, 512, format, args); - va_end(args); - queue->send({ severity, event, 0, msg }); -} - -void NodeLogBackend::record(mbgl::EventSeverity severity, mbgl::Event event, int64_t code) { - queue->send({ severity, event, code, "" }); -} - -void NodeLogBackend::record(mbgl::EventSeverity severity, mbgl::Event event, int64_t code, const std::string &msg) { - queue->send({ severity, event, code, msg }); +bool NodeLogObserver::onRecord(mbgl::EventSeverity severity, mbgl::Event event, int64_t code, const std::string &text) { + queue->send({ severity, event, code, text }); + return true; } } diff --git a/src/node_log.hpp b/src/node_log.hpp index 5cee4dde9b..9cbd880942 100644 --- a/src/node_log.hpp +++ b/src/node_log.hpp @@ -10,23 +10,20 @@ namespace mbgl { namespace util { template <typename T> class AsyncQueue; } } namespace node_mbgl { -class NodeLogBackend : public mbgl::LogBackend { +class NodeLogObserver : public mbgl::Log::Observer { public: - NodeLogBackend(v8::Handle<v8::Object> target); - ~NodeLogBackend(); + NodeLogObserver(v8::Handle<v8::Object> target); + ~NodeLogObserver(); - void record(mbgl::EventSeverity severity, mbgl::Event event, const std::string &msg); - void record(mbgl::EventSeverity severity, mbgl::Event event, const char* format, ...); - void record(mbgl::EventSeverity severity, mbgl::Event event, int64_t code); - void record(mbgl::EventSeverity severity, mbgl::Event event, int64_t code, const std::string &msg); + // Log::Observer implementation + virtual bool onRecord(mbgl::EventSeverity severity, mbgl::Event event, int64_t code, const std::string &msg) override; private: v8::Persistent<v8::Object> module; - struct Message; - using Queue = mbgl::util::AsyncQueue<Message>; + struct LogMessage; + using Queue = mbgl::util::AsyncQueue<LogMessage>; Queue *queue = nullptr; }; - } diff --git a/src/node_mapbox_gl_native.cpp b/src/node_mapbox_gl_native.cpp index 435c446a62..09250b7843 100644 --- a/src/node_mapbox_gl_native.cpp +++ b/src/node_mapbox_gl_native.cpp @@ -31,7 +31,7 @@ void RegisterModule(v8::Handle<v8::Object> exports) { auto EventEmitter = process->Get(NanNew("EventEmitter"))->ToObject(); exports->SetPrototype(EventEmitter->Get(NanNew("prototype"))); - mbgl::Log::Set<node_mbgl::NodeLogBackend>(exports); + mbgl::Log::setObserver(mbgl::util::make_unique<node_mbgl::NodeLogObserver>(exports)); } NODE_MODULE(mapbox_gl_native, RegisterModule) diff --git a/vendor/mbgl b/vendor/mbgl -Subproject 21ccf4374cb723c9eb1e9e9d40624a49aeed71b +Subproject 88b8d452b9ed2cc6c156b6b446904b86afd3c7a |