#pragma once #include #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wshadow" #include #include #pragma GCC diagnostic pop #include namespace node_mbgl { namespace util { template class AsyncQueue; } class NodeFileSource : public node::ObjectWrap, public mbgl::FileSource { //////////////////////////////////////////////////////////////////////////////////////////////// // Static Node Methods public: static void Init(v8::Handle target); static NAN_METHOD(New); static v8::Persistent constructorTemplate; //////////////////////////////////////////////////////////////////////////////////////////////// // Instance public: NodeFileSource(); ~NodeFileSource(); mbgl::Request* request(const mbgl::Resource&, uv_loop_t*, Callback); void cancel(mbgl::Request*); void request(const mbgl::Resource&, Callback); // visiblity? void notify(mbgl::Request*, const std::shared_ptr&); private: struct Action; using Queue = util::AsyncQueue; void processAdd(mbgl::Request*); void processCancel(mbgl::Request*); private: std::map> pending; Queue *queue = nullptr; }; }