| 1701 | |
| 1702 | template <typename T> |
| 1703 | class Buffer : public Uint8Array { |
| 1704 | public: |
| 1705 | static Buffer<T> New(napi_env env, size_t length); |
| 1706 | #ifndef NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED |
| 1707 | static Buffer<T> New(napi_env env, T* data, size_t length); |
| 1708 | |
| 1709 | // Finalizer must implement `void operator()(Env env, T* data)`. |
| 1710 | template <typename Finalizer> |
| 1711 | static Buffer<T> New(napi_env env, |
| 1712 | T* data, |
| 1713 | size_t length, |
| 1714 | Finalizer finalizeCallback); |
| 1715 | // Finalizer must implement `void operator()(Env env, T* data, Hint* hint)`. |
| 1716 | template <typename Finalizer, typename Hint> |
| 1717 | static Buffer<T> New(napi_env env, |
| 1718 | T* data, |
| 1719 | size_t length, |
| 1720 | Finalizer finalizeCallback, |
| 1721 | Hint* finalizeHint); |
| 1722 | #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED |
| 1723 | |
| 1724 | static Buffer<T> NewOrCopy(napi_env env, T* data, size_t length); |
| 1725 | // Finalizer must implement `void operator()(Env env, T* data)`. |
| 1726 | template <typename Finalizer> |
| 1727 | static Buffer<T> NewOrCopy(napi_env env, |
| 1728 | T* data, |
| 1729 | size_t length, |
| 1730 | Finalizer finalizeCallback); |
| 1731 | // Finalizer must implement `void operator()(Env env, T* data, Hint* hint)`. |
| 1732 | template <typename Finalizer, typename Hint> |
| 1733 | static Buffer<T> NewOrCopy(napi_env env, |
| 1734 | T* data, |
| 1735 | size_t length, |
| 1736 | Finalizer finalizeCallback, |
| 1737 | Hint* finalizeHint); |
| 1738 | |
| 1739 | static Buffer<T> Copy(napi_env env, const T* data, size_t length); |
| 1740 | |
| 1741 | static void CheckCast(napi_env env, napi_value value); |
| 1742 | |
| 1743 | Buffer(); |
| 1744 | Buffer(napi_env env, napi_value value); |
| 1745 | size_t Length() const; |
| 1746 | T* Data() const; |
| 1747 | |
| 1748 | private: |
| 1749 | }; |
| 1750 | |
| 1751 | /// Holds a counted reference to a value; initially a weak reference unless |
| 1752 | /// otherwise specified, may be changed to/from a strong reference by adjusting |
no outgoing calls
no test coverage detected