#include <megatree.h>
Classes | |
| class | ChildIterator |
Public Member Functions | |
| void | createChildNode (NodeHandle &parent_node, uint8_t child, NodeHandle &child_node) |
| NodeHandle * | createChildNode (NodeHandle &parent_node, uint8_t child) |
| void | dumpNodesInUse () |
| void | flushCache () |
| void | getChildNode (const NodeHandle &parent_node, uint8_t child, NodeHandle &child_node) |
| NodeHandle * | getChildNode (const NodeHandle &parent_node, uint8_t child) |
| IdType | getFileId (const IdType &node_id) |
| double | getMinCellSize () const |
| unsigned long | getNumPoints () |
| void | getRoot (NodeHandle &root_node) |
| NodeHandle * | getRoot () |
| const NodeGeometry & | getRootGeometry () const |
| ShortId | getShortId (const IdType &node_id) |
| MegaTree (boost::shared_ptr< Storage > storage, unsigned cache_size, bool read_only) | |
| MegaTree (boost::shared_ptr< Storage > storage, const std::vector< double > &cell_center, const double &cell_size, unsigned subtree_width, unsigned subfolder_depth, unsigned cache_size=CACHE_SIZE, double _min_cell_size=MIN_CELL_SIZE) | |
| bool | operator== (MegaTree &tree) |
| void | recenter (double x, double y, double z) |
| void | releaseNode (NodeHandle &node) |
| void | resetCount () |
| std::string | toString () |
| ~MegaTree () | |
Private Member Functions | |
| void | cacheMaintenance () |
| unsigned | cacheSize () const |
| bool | checkEqualRecursive (MegaTree &tree1, MegaTree &tree2, NodeHandle &node1, NodeHandle &node2) |
| NodeFile * | createNodeFile (const IdType &file_id) |
| void | createRoot (NodeHandle &root) |
| void | evictNodeFileCb (CacheIterator< IdType, NodeFile > it) |
| void | flushNodeFileCb (CacheIterator< IdType, NodeFile > it, boost::mutex &mutex, boost::condition &condition, unsigned &remaining) |
| NodeFile * | getNodeFile (const IdType &file_id) |
| void | initTree (boost::shared_ptr< Storage > storage, const std::vector< double > &_cell_center, const double &_cell_size, unsigned _subtree_width, unsigned _subfolder_depth, unsigned _cache_size, double _min_cell_size) |
| void | readNodeFileCb (NodeFile *node_file, const ByteVec &buffer) |
| void | releaseNodeFile (NodeFile *&node_file) |
| void | writeMetaData () |
Private Attributes | |
| unsigned | count_file_write |
| unsigned | count_hit |
| unsigned | count_miss |
| unsigned | count_nodes_read |
| unsigned | current_cache_size |
| unsigned | current_write_size |
| Cache< IdType, NodeFile > | file_cache |
| boost::mutex | file_cache_mutex |
| unsigned | max_cache_size |
| double | min_cell_size |
| boost::shared_ptr< Allocator < Node > > | node_allocator |
| bool | read_only |
| NodeGeometry | root_geometry |
| StdSingletonAllocatorInstance < std::_Rb_tree_node < std::pair< const ShortId, Node * > > > * | singleton_allocator |
| boost::shared_ptr< Storage > | storage |
| unsigned | subfolder_depth |
| unsigned | subtree_width |
Definition at line 33 of file megatree.h.
| megatree::MegaTree::MegaTree | ( | boost::shared_ptr< Storage > | storage, |
| unsigned | cache_size, | ||
| bool | read_only | ||
| ) |
Definition at line 20 of file megatree.cpp.
| megatree::MegaTree::MegaTree | ( | boost::shared_ptr< Storage > | storage, |
| const std::vector< double > & | cell_center, | ||
| const double & | cell_size, | ||
| unsigned | subtree_width, | ||
| unsigned | subfolder_depth, | ||
| unsigned | cache_size = CACHE_SIZE, |
||
| double | _min_cell_size = MIN_CELL_SIZE |
||
| ) |
Definition at line 50 of file megatree.cpp.
Definition at line 67 of file megatree.cpp.
| void megatree::MegaTree::cacheMaintenance | ( | ) | [private] |
Definition at line 503 of file megatree.cpp.
| unsigned megatree::MegaTree::cacheSize | ( | ) | const [inline, private] |
Definition at line 122 of file megatree.h.
| bool megatree::MegaTree::checkEqualRecursive | ( | MegaTree & | tree1, |
| MegaTree & | tree2, | ||
| NodeHandle & | node1, | ||
| NodeHandle & | node2 | ||
| ) | [private] |
Definition at line 181 of file megatree.cpp.
| void megatree::MegaTree::createChildNode | ( | NodeHandle & | parent_node, |
| uint8_t | child, | ||
| NodeHandle & | child_node | ||
| ) |
Definition at line 343 of file megatree.cpp.
| NodeHandle * megatree::MegaTree::createChildNode | ( | NodeHandle & | parent_node, |
| uint8_t | child | ||
| ) |
Definition at line 334 of file megatree.cpp.
| NodeFile * megatree::MegaTree::createNodeFile | ( | const IdType & | file_id | ) | [private] |
Definition at line 237 of file megatree.cpp.
| void megatree::MegaTree::createRoot | ( | NodeHandle & | root | ) | [private] |
Definition at line 592 of file megatree.cpp.
| void megatree::MegaTree::dumpNodesInUse | ( | ) |
Definition at line 636 of file megatree.cpp.
| void megatree::MegaTree::evictNodeFileCb | ( | CacheIterator< IdType, NodeFile > | it | ) | [private] |
Definition at line 669 of file megatree.cpp.
| void megatree::MegaTree::flushCache | ( | ) |
Definition at line 455 of file megatree.cpp.
| void megatree::MegaTree::flushNodeFileCb | ( | CacheIterator< IdType, NodeFile > | it, |
| boost::mutex & | mutex, | ||
| boost::condition & | condition, | ||
| unsigned & | remaining | ||
| ) | [private] |
Definition at line 651 of file megatree.cpp.
| void megatree::MegaTree::getChildNode | ( | const NodeHandle & | parent_node, |
| uint8_t | child, | ||
| NodeHandle & | child_node | ||
| ) |
Definition at line 396 of file megatree.cpp.
| NodeHandle * megatree::MegaTree::getChildNode | ( | const NodeHandle & | parent_node, |
| uint8_t | child | ||
| ) |
Definition at line 388 of file megatree.cpp.
| IdType megatree::MegaTree::getFileId | ( | const IdType & | node_id | ) |
Definition at line 579 of file megatree.cpp.
| double megatree::MegaTree::getMinCellSize | ( | ) | const [inline] |
Definition at line 102 of file megatree.h.
| NodeFile * megatree::MegaTree::getNodeFile | ( | const IdType & | file_id | ) | [private] |
Definition at line 264 of file megatree.cpp.
| unsigned long megatree::MegaTree::getNumPoints | ( | ) | [inline] |
Definition at line 73 of file megatree.h.
| void megatree::MegaTree::getRoot | ( | NodeHandle & | root_node | ) |
Definition at line 609 of file megatree.cpp.
Definition at line 629 of file megatree.cpp.
| const NodeGeometry& megatree::MegaTree::getRootGeometry | ( | ) | const [inline] |
Definition at line 96 of file megatree.h.
| ShortId megatree::MegaTree::getShortId | ( | const IdType & | node_id | ) |
Definition at line 585 of file megatree.cpp.
| void megatree::MegaTree::initTree | ( | boost::shared_ptr< Storage > | storage, |
| const std::vector< double > & | _cell_center, | ||
| const double & | _cell_size, | ||
| unsigned | _subtree_width, | ||
| unsigned | _subfolder_depth, | ||
| unsigned | _cache_size, | ||
| double | _min_cell_size | ||
| ) | [private] |
Definition at line 117 of file megatree.cpp.
| bool megatree::MegaTree::operator== | ( | MegaTree & | tree | ) |
Definition at line 222 of file megatree.cpp.
| void megatree::MegaTree::readNodeFileCb | ( | NodeFile * | node_file, |
| const ByteVec & | buffer | ||
| ) | [private] |
Definition at line 717 of file megatree.cpp.
| void megatree::MegaTree::recenter | ( | double | x, |
| double | y, | ||
| double | z | ||
| ) | [inline] |
Definition at line 106 of file megatree.h.
| void megatree::MegaTree::releaseNode | ( | NodeHandle & | node | ) |
Definition at line 433 of file megatree.cpp.
| void megatree::MegaTree::releaseNodeFile | ( | NodeFile *& | node_file | ) | [private] |
Definition at line 326 of file megatree.cpp.
| void megatree::MegaTree::resetCount | ( | ) | [inline] |
Definition at line 67 of file megatree.h.
| std::string megatree::MegaTree::toString | ( | ) | [inline] |
Definition at line 83 of file megatree.h.
| void megatree::MegaTree::writeMetaData | ( | ) | [private] |
Definition at line 156 of file megatree.cpp.
unsigned megatree::MegaTree::count_file_write [private] |
Definition at line 168 of file megatree.h.
unsigned megatree::MegaTree::count_hit [private] |
Definition at line 168 of file megatree.h.
unsigned megatree::MegaTree::count_miss [private] |
Definition at line 168 of file megatree.h.
unsigned megatree::MegaTree::count_nodes_read [private] |
Definition at line 168 of file megatree.h.
unsigned megatree::MegaTree::current_cache_size [private] |
Definition at line 158 of file megatree.h.
unsigned megatree::MegaTree::current_write_size [private] |
Definition at line 159 of file megatree.h.
Cache<IdType, NodeFile> megatree::MegaTree::file_cache [private] |
Definition at line 157 of file megatree.h.
boost::mutex megatree::MegaTree::file_cache_mutex [private] |
Definition at line 156 of file megatree.h.
unsigned megatree::MegaTree::max_cache_size [private] |
Definition at line 164 of file megatree.h.
double megatree::MegaTree::min_cell_size [private] |
Definition at line 162 of file megatree.h.
boost::shared_ptr<Allocator<Node> > megatree::MegaTree::node_allocator [private] |
Definition at line 165 of file megatree.h.
bool megatree::MegaTree::read_only [private] |
Definition at line 170 of file megatree.h.
Definition at line 163 of file megatree.h.
StdSingletonAllocatorInstance<std::_Rb_tree_node<std::pair<const ShortId, Node*> > >* megatree::MegaTree::singleton_allocator [private] |
Definition at line 166 of file megatree.h.
boost::shared_ptr<Storage> megatree::MegaTree::storage [private] |
Definition at line 153 of file megatree.h.
unsigned megatree::MegaTree::subfolder_depth [private] |
Definition at line 164 of file megatree.h.
unsigned megatree::MegaTree::subtree_width [private] |
Definition at line 164 of file megatree.h.