| #ifndef SRC_CLEANUP_QUEUE_INL_H_ |
| #define SRC_CLEANUP_QUEUE_INL_H_ |
| |
| #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS |
| |
| #include "cleanup_queue.h" |
| #include "util.h" |
| |
| namespace node { |
| |
| inline size_t CleanupQueue::SelfSize() const { |
| return sizeof(CleanupQueue) + |
| cleanup_hooks_.size() * sizeof(CleanupHookCallback); |
| } |
| |
| bool CleanupQueue::empty() const { |
| return cleanup_hooks_.empty(); |
| } |
| |
| void CleanupQueue::Add(Callback cb, void* arg) { |
| auto insertion_info = |
| cleanup_hooks_.emplace(cb, arg, cleanup_hook_counter_++); |
| // Make sure there was no existing element with these values. |
| CHECK_EQ(insertion_info.second, true); |
| } |
| |
| void CleanupQueue::Remove(Callback cb, void* arg) { |
| CleanupHookCallback search{cb, arg, 0}; |
| cleanup_hooks_.erase(search); |
| } |
| |
| } // namespace node |
| |
| #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS |
| |
| #endif // SRC_CLEANUP_QUEUE_INL_H_ |