File indexing completed on 2024-11-24 04:54:36
0001 /* 0002 SPDX-License-Identifier: MPL-2.0 0003 */ 0004 0005 /* Copyright (c) 2015 Brian R. Bondy. Distributed under the MPL2 license. 0006 * This Source Code Form is subject to the terms of the Mozilla Public 0007 * License, v. 2.0. If a copy of the MPL was not distributed with this 0008 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 0009 0010 #ifndef HASH_SET_WRAP_H_ 0011 #define HASH_SET_WRAP_H_ 0012 0013 #include <node.h> 0014 #include <node_object_wrap.h> 0015 0016 #include "./hash_set.h" 0017 #include "./test/example_data.h" 0018 0019 namespace HashSetWrap { 0020 0021 /** 0022 * Wraps Hash Set for use in Node 0023 */ 0024 class HashSetWrap : public HashSet<ExampleData>, public node::ObjectWrap { 0025 public: 0026 static void Init(v8::Local<v8::Object> exports); 0027 0028 private: 0029 explicit HashSetWrap(uint32_t bucket_count, bool multi_set); 0030 virtual ~HashSetWrap(); 0031 0032 static void New(const v8::FunctionCallbackInfo<v8::Value>& args); 0033 0034 static void AddItem(const v8::FunctionCallbackInfo<v8::Value>& args); 0035 static void ItemExists(const v8::FunctionCallbackInfo<v8::Value>& args); 0036 0037 static v8::Persistent<v8::Function> constructor; 0038 }; 0039 0040 } // namespace HashSetWrap 0041 0042 #endif // HASH_SET_WRAP_H_