ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
rux::database::ResourceRouter Class Referenceabstract

Base interface for resource routers. More...

#include <resource_router.hpp>

Inheritance diagram for rux::database::ResourceRouter:
Collaboration diagram for rux::database::ResourceRouter:

Public Member Functions

 ResourceRouter (std::shared_ptr< reusex::ProjectDB > db)
virtual ~ResourceRouter ()=default
virtual DataPayload get (const std::vector< PathComponent > &components)=0
 Get resource data at the given path.
virtual void set (const std::vector< PathComponent > &components, const DataPayload &data)=0
 Set resource data at the given path.
virtual void del (const std::vector< PathComponent > &components)=0
 Delete resource at the given path.
virtual std::vector< std::string > list () const =0
 List all items in this collection.
std::optional< std::string > resolve_index (int index) const
 Resolve array index to item name/id.

Protected Attributes

std::shared_ptr< reusex::ProjectDBdb_

Detailed Description

Base interface for resource routers.

Each resource type (clouds, meshes, frames, etc.) implements this interface to handle get/set/del operations for its specific resource type.

Definition at line 26 of file resource_router.hpp.

Constructor & Destructor Documentation

◆ ResourceRouter()

rux::database::ResourceRouter::ResourceRouter ( std::shared_ptr< reusex::ProjectDB > db)
inlineexplicit

Definition at line 28 of file resource_router.hpp.

References db_.

◆ ~ResourceRouter()

virtual rux::database::ResourceRouter::~ResourceRouter ( )
virtualdefault

Member Function Documentation

◆ del()

virtual void rux::database::ResourceRouter::del ( const std::vector< PathComponent > & components)
pure virtual

Delete resource at the given path.

Parameters
componentsParsed path components (after collection)
Exceptions
std::runtime_errorif operation fails

Implemented in rux::database::CloudRouter, rux::database::MeshRouter, rux::database::PanoramaRouter, rux::database::PassportRouter, and rux::database::ProjectRouter.

◆ get()

virtual DataPayload rux::database::ResourceRouter::get ( const std::vector< PathComponent > & components)
pure virtual

Get resource data at the given path.

Parameters
componentsParsed path components (after collection)
Returns
Data payload
Exceptions
std::runtime_errorif path is invalid or resource not found

Implemented in rux::database::CloudRouter, rux::database::MeshRouter, rux::database::PanoramaRouter, rux::database::PassportRouter, and rux::database::ProjectRouter.

◆ list()

virtual std::vector< std::string > rux::database::ResourceRouter::list ( ) const
pure virtual

List all items in this collection.

Used for wildcard expansion and array indexing. Returns items in deterministic order (see MEMORY.md).

Returns
Ordered list of item names/ids

Implemented in rux::database::CloudRouter, rux::database::MeshRouter, rux::database::PanoramaRouter, rux::database::PassportRouter, and rux::database::ProjectRouter.

Referenced by resolve_index().

◆ resolve_index()

std::optional< std::string > rux::database::ResourceRouter::resolve_index ( int index) const
inline

Resolve array index to item name/id.

Parameters
indexArray index
Returns
Item name/id if valid, nullopt otherwise

Definition at line 74 of file resource_router.hpp.

References list().

◆ set()

virtual void rux::database::ResourceRouter::set ( const std::vector< PathComponent > & components,
const DataPayload & data )
pure virtual

Set resource data at the given path.

Parameters
componentsParsed path components (after collection)
dataInput data
Exceptions
std::runtime_errorif operation fails

Implemented in rux::database::CloudRouter, rux::database::MeshRouter, rux::database::PanoramaRouter, rux::database::PassportRouter, and rux::database::ProjectRouter.

Member Data Documentation

◆ db_

std::shared_ptr<reusex::ProjectDB> rux::database::ResourceRouter::db_
protected

Definition at line 83 of file resource_router.hpp.

Referenced by ResourceRouter().


The documentation for this class was generated from the following file: