From 076e104b8672924c3d80cd1da2fdb5ebee1766ac Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 24 Aug 2023 17:00:31 -0400 Subject: Migrated over to using psudb-common utilities/headers --- include/ds/BitArray.h | 67 --------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 include/ds/BitArray.h (limited to 'include/ds/BitArray.h') diff --git a/include/ds/BitArray.h b/include/ds/BitArray.h deleted file mode 100644 index 586561b..0000000 --- a/include/ds/BitArray.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * include/ds/BitArray.h - * - * Copyright (C) 2023 Dong Xie - * - * All rights reserved. Published under the Modified BSD License. - * - */ -#pragma once - -#include -#include -#include - -#include "util/base.h" - -namespace de { - -class BitArray { -public: - BitArray(size_t bits): m_bits(bits), m_data(nullptr) { - if (m_bits > 0) { - size_t n_bytes = (m_bits >> 3) << 3; - m_data = (char*) std::aligned_alloc(CACHELINE_SIZE, CACHELINEALIGN(n_bytes)); - memset(m_data, 0, n_bytes); - } - } - - ~BitArray() { - if (m_data) free(m_data); - } - - bool is_set(size_t bit) { - if (bit >= m_bits) return false; - return m_data[bit >> 3] & (1 << (bit & 7)); - } - - int set(size_t bit) { - if (bit >= m_bits) return 0; - m_data[bit >> 3] |= ((char) 1 << (bit & 7)); - return 1; - } - - int unset(size_t bit) { - if (bit >= m_bits) return 0; - m_data[bit >> 3] &= ~((char) 1 << (bit & 7)); - return 1; - } - - void clear() { - memset(m_data, 0, (m_bits >> 3) << 3); - } - - size_t mem_size() { - return m_bits >> 3; - } - - size_t size() { - return m_bits; - } - -private: - size_t m_bits; - char* m_data; -}; - -} -- cgit v1.2.3