SIRF  3.4.0
Classes | Macros | Typedefs | Functions
DataHandle.h File Reference

Execution status type and wrappers for C++ objects. More...

#include <stdlib.h>
#include <memory>
#include <string>
#include <vector>
#include "sirf/iUtilities/LocalisedException.h"

Go to the source code of this file.

Classes

class  ExecutionStatus
 Execution status type. More...
 
class  DataHandle
 Basic wrapper for C++ objects. More...
 
class  ObjectHandle< Base >
 

Macros

#define NEW(T, X)   T* X = new T
 
#define CAST_PTR(T, X, Y)   T* X = (T*)Y
 
#define CATCH
 
#define GRAB   1
 

Typedefs

typedef std::vector< void const * > DataHandleVector
 Typedef of vector of void pointers for a vector of handles.
 

Functions

template<class Object >
Object & objectFromHandle (const void *h)
 
template<class Object >
void getObjectSptrFromHandle (const void *h, std::shared_ptr< Object > &sptr)
 
template<typename T >
void setDataHandle (DataHandle *h, T x)
 DataHandle wrapper. More...
 
template<typename T >
void * dataHandle (T x)
 Data wrapper constructor. More...
 
template<typename T >
dataFromHandle (const void *ptr)
 Data extractor. More...
 
char * charDataFromDataHandle (const DataHandle *ptr_h)
 
void * charDataHandleFromCharData (const char *s)
 

Detailed Description

Execution status type and wrappers for C++ objects.

Author
Evgueni Ovtchinnikov
SyneRBI

Macro Definition Documentation

◆ CATCH

#define CATCH
Value:
catch (LocalisedException& se) {\
ExecutionStatus status(se);\
DataHandle* handle = new DataHandle;\
handle->set(0, &status);\
return (void*)handle;\
}\
catch (std::string msg) {\
ExecutionStatus status(msg.c_str(), __FILE__, __LINE__);\
DataHandle* handle = new DataHandle;\
handle->set(0, &status);\
return (void*)handle;\
}\
catch (const std::exception &error) {\
ExecutionStatus status(error.what(), __FILE__, __LINE__);\
DataHandle* handle = new DataHandle;\
handle->set(0, &status);\
return (void*)handle;\
}\
catch (...) {\
ExecutionStatus status("unhandled", __FILE__, __LINE__);\
DataHandle* handle = new DataHandle;\
handle->set(0, &status);\
return (void*)handle;\
}\
Definition: LocalisedException.h:32
Basic wrapper for C++ objects.
Definition: DataHandle.h:115

Function Documentation

◆ dataFromHandle()

template<typename T >
T dataFromHandle ( const void *  ptr)

Data extractor.

Returns a copy of the data stored in a DataHandle object.must have a proper copy constructor

◆ dataHandle()

template<typename T >
void* dataHandle ( x)

Data wrapper constructor.

Creates a new DataHandle to wrap an object of type T.

◆ setDataHandle()

template<typename T >
void setDataHandle ( DataHandle h,
x 
)

DataHandle wrapper.

Wraps an object of type T into DataHandle. The data is owned by the DataHandle object and hence will be deleted by its destructor.