3#include "containers/ClauseBuffer.hpp"
4#include "containers/ClauseDatabase.hpp"
7#include <unordered_map>
59 size_t giveSelection(std::vector<ClauseExchangePtr>& selectedCls,
unsigned int literalCountLimit)
override;
66 void getClauses(std::vector<ClauseExchangePtr>& v_cls)
override;
103 std::unordered_map<int, std::unique_ptr<ClauseBuffer>> entityDatabases;
111 mutable std::shared_mutex dbmutex;
117 unsigned int maxClauseSize;
#define LOGDEBUG3(...)
Log a debug message with verbosity level 4 and magenta color.
Definition Logger.hpp:229
A clause database that maintain separate buffers for each entity, mimicing old painless default behav...
Definition ClauseDatabaseBufferPerEntity.hpp:26
void getClauses(std::vector< ClauseExchangePtr > &v_cls) override
Retrieves all clauses from all entity buffers.
ClauseDatabaseBufferPerEntity()=delete
Default constructor deleted to enforce use of parameterized constructor.
size_t shrinkDatabase() override
Does nothing in this implementation.
Definition ClauseDatabaseBufferPerEntity.hpp:93
bool addClause(ClauseExchangePtr clause) override
Adds a clause to the appropriate entity's buffer.
~ClauseDatabaseBufferPerEntity() override=default
Virtual destructor.
ClauseDatabaseBufferPerEntity(int maxClauseSize)
Constructor with a specified maximum clause size.
void clearDatabase() override
Clears all export buffers.
bool getOneClause(ClauseExchangePtr &cls) override
Retrieves a single clause from any entity buffer.
size_t getSize() const override
Gets the total number of clauses across all entity buffers.
size_t giveSelection(std::vector< ClauseExchangePtr > &selectedCls, unsigned int literalCountLimit) override
Selects clauses up to a specified total size.
Abstract base class defining the interface for clause storage and management.
Definition ClauseDatabase.hpp:27