Aikido
aikido::rviz::ResourceServer Class Reference

#include <aikido/rviz/ResourceServer.hpp>

Public Member Functions

 ResourceServer ()
 
 ResourceServer (const ResourceServer &other)=delete
 
ResourceServeroperator= (const ResourceServer &other)=delete
 
virtual ~ResourceServer ()
 
bool isRunning () const
 
unsigned short getPort () const
 
bool start (unsigned short port=0)
 
bool stop ()
 
std::string addMesh (const aiScene &scene, const std::string &scenePath)
 

Private Types

typedef std::shared_ptr< MeshResourceMeshResourcePtr
 
typedef std::shared_ptr< BinaryResourceResourcePtr
 
typedef std::weak_ptr< BinaryResourceWeakResourcePtr
 

Private Member Functions

std::string getMeshURI (const MeshResourcePtr &meshResource) const
 

Static Private Member Functions

static bool hasBuggyAssimp ()
 
static int queueHttpError (struct MHD_Connection *connection, unsigned int code, const std::string &message)
 
static ssize_t resourceReaderCallback (void *cls, uint64_t pos, char *buf, size_t max)
 
static void resourceReaderFreeCallback (void *cls)
 
static int processConnection (void *cls, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, std::size_t *upload_data_size, void **ptr)
 

Private Attributes

struct MHD_Daemon * mDaemon
 
std::string mHost
 
unsigned short mPort
 
std::mutex mMutex
 
std::unordered_map< aiScene const *, MeshResourcePtrmScenes
 
std::unordered_map< std::string, WeakResourcePtrmResources
 

Member Typedef Documentation

◆ MeshResourcePtr

◆ ResourcePtr

◆ WeakResourcePtr

Constructor & Destructor Documentation

◆ ResourceServer() [1/2]

aikido::rviz::ResourceServer::ResourceServer ( )

◆ ResourceServer() [2/2]

aikido::rviz::ResourceServer::ResourceServer ( const ResourceServer other)
delete

◆ ~ResourceServer()

virtual aikido::rviz::ResourceServer::~ResourceServer ( )
virtual

Member Function Documentation

◆ addMesh()

std::string aikido::rviz::ResourceServer::addMesh ( const aiScene &  scene,
const std::string &  scenePath 
)

◆ getMeshURI()

std::string aikido::rviz::ResourceServer::getMeshURI ( const MeshResourcePtr meshResource) const
private

◆ getPort()

unsigned short aikido::rviz::ResourceServer::getPort ( ) const

◆ hasBuggyAssimp()

static bool aikido::rviz::ResourceServer::hasBuggyAssimp ( )
staticprivate

◆ isRunning()

bool aikido::rviz::ResourceServer::isRunning ( ) const

◆ operator=()

ResourceServer& aikido::rviz::ResourceServer::operator= ( const ResourceServer other)
delete

◆ processConnection()

static int aikido::rviz::ResourceServer::processConnection ( void *  cls,
struct MHD_Connection *  connection,
const char *  url,
const char *  method,
const char *  version,
const char *  upload_data,
std::size_t *  upload_data_size,
void **  ptr 
)
staticprivate

◆ queueHttpError()

static int aikido::rviz::ResourceServer::queueHttpError ( struct MHD_Connection *  connection,
unsigned int  code,
const std::string &  message 
)
staticprivate

◆ resourceReaderCallback()

static ssize_t aikido::rviz::ResourceServer::resourceReaderCallback ( void *  cls,
uint64_t  pos,
char *  buf,
size_t  max 
)
staticprivate

◆ resourceReaderFreeCallback()

static void aikido::rviz::ResourceServer::resourceReaderFreeCallback ( void *  cls)
staticprivate

◆ start()

bool aikido::rviz::ResourceServer::start ( unsigned short  port = 0)

◆ stop()

bool aikido::rviz::ResourceServer::stop ( )

Member Data Documentation

◆ mDaemon

struct MHD_Daemon* aikido::rviz::ResourceServer::mDaemon
private

◆ mHost

std::string aikido::rviz::ResourceServer::mHost
private

◆ mMutex

std::mutex aikido::rviz::ResourceServer::mMutex
mutableprivate

◆ mPort

unsigned short aikido::rviz::ResourceServer::mPort
private

◆ mResources

std::unordered_map<std::string, WeakResourcePtr> aikido::rviz::ResourceServer::mResources
private

◆ mScenes

std::unordered_map<aiScene const*, MeshResourcePtr> aikido::rviz::ResourceServer::mScenes
private