columnar::ColumnarToolWrapperData Node1 columnar::ColumnarToolWrapperData + ColumnarToolWrapperData() + setColumn() + setColumnVoid() + setColumnNumpy() + call() + checkColumnsValid() + getColumn() + getColumnVoid() + data() - checkColumn() Node2 std::vector< std::size_t > + elements Node2->Node1 -m_dataSize Node3 std::vector< void * > + elements Node3->Node1 -m_data Node4 std::vector< bool > + elements Node4->Node1 -m_columnIsChecked -m_columnIsFilled Node5 columnar::ColumnarToolWrapper - m_numColumns + ColumnarToolWrapper() + ColumnarToolWrapper() + ColumnarToolWrapper() + operator=() + getColumnNames() + getColumnInfo() * getColumnNames() * getColumnInfo() Node5->Node1 -m_wrapper Node6 columnar::IColumnarTool + ~IColumnarTool() + callVoid() + getColumnInfo() + renameColumn() + setColumnIndex() Node6->Node5 -m_tool Node11 std::shared_ptr< const columnar::IColumnarTool > + operator->() Node6->Node11 +ptr Node7 std::unordered_map < std::string, columnar ::ColumnarToolWrapper:: MyColumnInfo > Node7->Node5 -m_columns Node8 columnar::ColumnarToolWrapper ::MyColumnInfo + type + isConst + index + fixedDimensions + isOffset + isOptional + numpyType + numpyBits + offsets Node8->Node7 +elements Node9 std::string Node9->Node7 +keys Node11->Node5 -m_toolOwn