|
My Project
|
The TableContainer class implements a simple map: More...
#include <TableContainer.hpp>
Public Types | |
| using | TableMap = std::map< size_t, std::shared_ptr< SimpleTable > > |
Public Member Functions | |
| TableContainer (size_t maxTables) | |
| bool | empty () const |
| size_t | size () const |
| size_t | max () const |
| const TableMap & | tables () const |
| void | addTable (size_t tableNumber, std::shared_ptr< SimpleTable > table) |
| bool | hasTable (size_t tableNumber) const |
| const SimpleTable & | getTable (size_t tableNumber) const |
| const SimpleTable & | operator[] (size_t tableNumber) const |
| template<class TableType > | |
| const TableType & | getTable (size_t tableNumber) const |
| bool | operator== (const TableContainer &data) const |
| template<class Serializer > | |
| void | serializeOp (Serializer &serializer) |
Static Public Member Functions | |
| static TableContainer | serializationTestObject () |
The TableContainer class implements a simple map:
{tableNumber, Table}
The main functionality of the TableContainer class is that the getTable() method implements the ECLIPSE behavior:
If table N is not implemented - use table N - 1.
The getTable() method will eventually throw an exception if not even table 0 is there.
Consider the following code:
TableContainer container(10);
std::shared_ptr<TableType> table0 = std::make_shared<TableType>(...); container.addTable(table0, 0)
We create a container with maximum 10 tables, and then we add one single table at slot 0; then we have:
container.size() == 1 container.hasTable( 0 ) == true container.hasTable( 9 ) == false container.hasTable(10 ) == false
container.getTable( 0 ) == container[9] == table0; container.gteTable(10 ) ==> exception