| souffle
    2.0.2-371-g6315b36
    | 
#include <SymbolTable.h>

| Public Member Functions | |
| Lock::Lease | acquireLock () const | 
| bool | contains (const RamDomain index) const | 
| Check if the symbol table contains an index.  More... | |
| bool | contains (const std::string &symbol) const | 
| Check if the symbol table contains a string.  More... | |
| void | insert (const std::string &symbol) | 
| Insert a single symbol into the table, not that this operation should not be used if inserting symbols in bulk.  More... | |
| void | insert (const std::vector< std::string > &symbols) | 
| Bulk insert symbols into the table, note that this operation is more efficient than repeated inserts of single symbols.  More... | |
| RamDomain | lookup (const std::string &symbol) | 
| Find the index of a symbol in the table, inserting a new symbol if it does not exist there already.  More... | |
| RamDomain | lookupExisting (const std::string &symbol) const | 
| Finds the index of a symbol in the table, giving an error if it's not found.  More... | |
| SymbolTable & | operator= (const SymbolTable &other) | 
| Assignment operator, performs a deep copy and frees memory allocated for all strings.  More... | |
| SymbolTable & | operator= (SymbolTable &&other) noexcept | 
| Assignment operator for r-value references.  More... | |
| void | print (std::ostream &out) const | 
| Print the symbol table to the given stream.  More... | |
| const std::string & | resolve (const RamDomain index) const | 
| Find a symbol in the table by its index, note that this gives an error if the index is out of bounds.  More... | |
| size_t | size () const | 
| SymbolTable ()=default | |
| Empty constructor.  More... | |
| SymbolTable (const SymbolTable &other) | |
| Copy constructor, performs a deep copy.  More... | |
| SymbolTable (std::initializer_list< std::string > symbols) | |
| SymbolTable (SymbolTable &&other) noexcept | |
| Copy constructor for r-value reference.  More... | |
| RamDomain | unsafeLookup (const std::string &symbol) | 
| Find the index of a symbol in the table, inserting a new symbol if it does not exist there already.  More... | |
| const std::string & | unsafeResolve (const RamDomain index) const | 
| virtual | ~SymbolTable ()=default | 
| Destructor, frees memory allocated for all strings.  More... | |
| Private Member Functions | |
| void | newSymbol (const std::string &symbol) | 
| Convenience method to place a new symbol in the table, if it does not exist.  More... | |
| size_t | newSymbolOfIndex (const std::string &symbol) | 
| Convenience method to place a new symbol in the table, if it does not exist, and return the index of it.  More... | |
| Private Attributes | |
| Lock | access | 
| A lock to synchronize parallel accesses.  More... | |
| std::deque< std::string > | numToStr | 
| Map indices to strings.  More... | |
| std::unordered_map< std::string, size_t > | strToNum | 
| Map strings to indices.  More... | |
| Friends | |
| std::ostream & | operator<< (std::ostream &out, const SymbolTable &table) | 
| Stream operator, used as a convenience for print.  More... | |
Global pool of re-usable strings
SymbolTable stores Datalog symbols and converts them to numbers and vice versa.
Definition at line 48 of file SymbolTable.h.
| 
 | default | 
Empty constructor.
| 
 | inline | 
Copy constructor, performs a deep copy.
Definition at line 87 of file SymbolTable.h.
| 
 | inlinenoexcept | 
Copy constructor for r-value reference.
Definition at line 90 of file SymbolTable.h.
References newSymbol().

| 
 | inline | 
| 
 | virtualdefault | 
Destructor, frees memory allocated for all strings.
| 
 | inline | 
Definition at line 238 of file SymbolTable.h.
| 
 | inline | 
| 
 | inline | 
Check if the symbol table contains a string.
Definition at line 215 of file SymbolTable.h.
| 
 | inline | 
Insert a single symbol into the table, not that this operation should not be used if inserting symbols in bulk.
Definition at line 193 of file SymbolTable.h.
| 
 | inline | 
Bulk insert symbols into the table, note that this operation is more efficient than repeated inserts of single symbols.
Definition at line 179 of file SymbolTable.h.
| 
 | inline | 
Find the index of a symbol in the table, inserting a new symbol if it does not exist there already.
Definition at line 124 of file SymbolTable.h.
Referenced by souffle::tuple::rewind(), and souffle::interpreter::test::TEST().
| 
 | inline | 
Finds the index of a symbol in the table, giving an error if it's not found.
Definition at line 133 of file SymbolTable.h.
| 
 | inlineprivate | 
Convenience method to place a new symbol in the table, if it does not exist.
Definition at line 75 of file SymbolTable.h.
Referenced by SymbolTable().
| 
 | inlineprivate | 
Convenience method to place a new symbol in the table, if it does not exist, and return the index of it.
Definition at line 61 of file SymbolTable.h.
Referenced by operator=().
| 
 | inline | 
Assignment operator, performs a deep copy and frees memory allocated for all strings.
Definition at line 106 of file SymbolTable.h.
| 
 | inlinenoexcept | 
Assignment operator for r-value references.
Definition at line 116 of file SymbolTable.h.
References access, souffle::Lock::acquire(), and newSymbolOfIndex().

| 
 | inline | 
Print the symbol table to the given stream.
Definition at line 202 of file SymbolTable.h.
| 
 | inline | 
Find a symbol in the table by its index, note that this gives an error if the index is out of bounds.
Definition at line 154 of file SymbolTable.h.
Referenced by souffle::interpreter::RelInterface::iterator_base::operator++(), and souffle::tuple::operator<<().
| 
 | inline | 
Definition at line 172 of file SymbolTable.h.
References access, souffle::Lock::acquire(), and strToNum.
Referenced by unsafeLookup().

| 
 | inline | 
Find the index of a symbol in the table, inserting a new symbol if it does not exist there already.
Definition at line 147 of file SymbolTable.h.
References access, souffle::Lock::acquire(), and size().

| 
 | inline | 
Definition at line 167 of file SymbolTable.h.
| 
 | friend | 
Stream operator, used as a convenience for print.
Definition at line 243 of file SymbolTable.h.
| 
 | mutableprivate | 
A lock to synchronize parallel accesses.
Definition at line 51 of file SymbolTable.h.
Referenced by operator=(), size(), and unsafeLookup().
| 
 | private | 
| 
 | private | 
Map strings to indices.
Definition at line 57 of file SymbolTable.h.
Referenced by size(), and SymbolTable().
 1.8.17
 1.8.17