|
Fawkes API
Fawkes Development Version
|
Shared memory image buffer. More...
#include <>>

Public Member Functions | |
| SharedMemoryImageBuffer (const char *image_id, colorspace_t cspace, unsigned int width, unsigned int height) | |
| Write Constructor. | |
| SharedMemoryImageBuffer (const char *image_id, bool is_read_only=true) | |
| Read Constructor. | |
| ~SharedMemoryImageBuffer () | |
| Destructor. | |
| const char * | image_id () const |
| Get Image ID. | |
| const char * | frame_id () const |
| Get frame ID. | |
| unsigned char * | buffer () const |
| Get image buffer. | |
| colorspace_t | colorspace () const |
| Get color space. | |
| unsigned int | width () const |
| Get image width. | |
| unsigned int | height () const |
| Get image height. | |
| unsigned int | roi_x () const |
| Get ROI X. | |
| unsigned int | roi_y () const |
| Get ROI Y. | |
| unsigned int | roi_width () const |
| Get ROI width. | |
| unsigned int | roi_height () const |
| Get ROI height. | |
| int | circle_x () const |
| Get circle X. | |
| int | circle_y () const |
| Get circle Y. | |
| unsigned int | circle_radius () const |
| Get circle radius. | |
| bool | circle_found () const |
| Check if circle was found . | |
| void | set_roi_x (unsigned int roi_x) |
| Set ROI X. | |
| void | set_roi_y (unsigned int roi_y) |
| Set ROI Y. | |
| void | set_roi_width (unsigned int roi_w) |
| Set ROI width. | |
| void | set_roi_height (unsigned int roi_h) |
| Set ROI height. | |
| void | set_roi (unsigned int roi_x, unsigned int roi_y, unsigned int roi_w, unsigned int roi_h) |
| Set ROI data. | |
| void | set_circle_x (int circle_x) |
| Set circle X. | |
| void | set_circle_y (int circle_y) |
| Set circle Y. | |
| void | set_circle_radius (unsigned int circle_radius) |
| Set circle radius. | |
| void | set_circle (int x, int y, unsigned int r) |
| Set circle data. | |
| void | set_circle_found (bool found) |
| Set circle found. | |
| bool | set_image_id (const char *image_id) |
| Set image number. | |
| void | set_frame_id (const char *frame_id) |
| Set frame ID. | |
| fawkes::Time | capture_time () const |
| Get the time when the image was captured. | |
| void | capture_time (long int *sec, long int *usec) const |
| Get the time when the image was captured. | |
| void | set_capture_time (fawkes::Time *time) |
| Set the capture time. | |
| void | set_capture_time (long int sec, long int usec) |
| Set the capture time. | |
Public Member Functions inherited from fawkes::SharedMemory | |
| SharedMemory (const char *magic_token, SharedMemoryHeader *header, bool is_read_only, bool create, bool destroy_on_delete, const char *registry_name=0) | |
| Create a new shared memory segment. | |
| SharedMemory (const SharedMemory &s) | |
| Copy constructor. | |
| virtual | ~SharedMemory () |
| Destructor. | |
| bool | is_read_only () const |
| Check for read-only mode. | |
| bool | is_destroyed () const |
| Check if segment has been destroyed This can be used if the segment has been destroyed. | |
| bool | is_swapable () const |
| Check if memory can be swapped out. | |
| bool | is_valid () const |
| Check validity of shared memory segment. | |
| bool | is_creator () const |
| Determine if the shared memory segment has been created by this instance. | |
| bool | is_protected () const |
| Check if memory segment is protected. | |
| void * | memptr () const |
| Get a pointer to the shared memory This method returns a pointer to the data-segment of the shared memory segment. | |
| size_t | data_size () const |
| Get the size of the data-segment. | |
| int | shmem_id () const |
| Get shared memory ID. | |
| unsigned int | num_attached () const |
| Get number of attached processes. | |
| void | set (void *memptr) |
| Copies data from the memptr to shared memory. | |
| void | set_destroy_on_delete (bool destroy) |
| Set deletion behaviour. | |
| void | add_semaphore () |
| Add semaphore to shared memory segment. | |
| void | set_swapable (bool swapable) |
| Set shared memory swapable. | |
| void | lock_for_read () |
| Lock shared memory segment for reading. | |
| bool | try_lock_for_read () |
| Try to aquire lock on shared memory segment for reading. | |
| void | lock_for_write () |
| Lock shared memory segment for writing. | |
| bool | try_lock_for_write () |
| Try to aquire lock on shared memory segment for writing. | |
| void | unlock () |
| Unlock memory. | |
| void * | ptr (void *addr) const |
| Get the real pointer to the data based on an address. | |
| void * | addr (void *ptr) const |
| Get an address from a real pointer. | |
Static Public Member Functions | |
| static void | list () |
| List all shared memory segments that contain a FireVision image. | |
| static void | cleanup (bool use_lister=true) |
| Erase all shared memory segments that contain FireVision images. | |
| static bool | exists (const char *image_id) |
| Check image availability. | |
| static void | wipe (const char *image_id) |
| Erase a specific shared memory segment that contains an image. | |
Static Public Member Functions inherited from fawkes::SharedMemory | |
| static void | list (const char *magic_token, SharedMemoryHeader *header, SharedMemoryLister *lister, const char *registry_name=0) |
| List shared memory segments of a given type. | |
| static void | erase (const char *magic_token, SharedMemoryHeader *header, SharedMemoryLister *lister=0, const char *registry_name=0) |
| Erase shared memory segments of a given type. | |
| static void | erase_orphaned (const char *magic_token, SharedMemoryHeader *header, SharedMemoryLister *lister=0, const char *registry_name=0) |
| Erase orphaned (attach count = 0) shared memory segments of a given type. | |
| static bool | exists (const char *magic_token, SharedMemoryHeader *header, const char *registry_name=0) |
| Check if a specific shared memory segment exists. | |
| static bool | is_destroyed (int shm_id) |
| Check if a segment has been destroyed. | |
| static bool | is_swapable (int shm_id) |
| Check if memory can be swapped out. | |
| static unsigned int | num_attached (int shm_id) |
| Get number of attached processes. | |
| static SharedMemoryIterator | find (const char *magic_token, SharedMemoryHeader *header, const char *registry_name=0) |
| Find SharedMemory segments. | |
| static SharedMemoryIterator | end () |
| Get invalid iterator. | |
Additional Inherited Members | |
Static Public Attributes inherited from fawkes::SharedMemory | |
| static const unsigned int | MagicTokenSize = MAGIC_TOKEN_SIZE |
| The magic token size. | |
| static const short | MaxNumConcurrentReaders = 8 |
| Maximum number of concurrent readers. | |
Protected Member Functions inherited from fawkes::SharedMemory | |
| SharedMemory (const char *magic_token, bool is_read_only, bool create, bool destroy_on_delete, const char *registry_name=0) | |
| Constructor for derivates. | |
| void | attach () |
| Attach to the shared memory segment. | |
| void | free () |
| Detach from and maybe destroy the shared memory segment. | |
Protected Attributes inherited from fawkes::SharedMemory | |
| void * | _memptr |
| Pointer to the data segment. | |
| size_t | _mem_size |
| Total size of the segment, including headers. | |
| size_t | _data_size |
| Size of the data segment only. | |
| SharedMemoryHeader * | _header |
| Data-specific header. | |
| bool | _is_read_only |
| Read-only. | |
| bool | _destroy_on_delete |
| destroy on delete. | |
| bool | _should_create |
| Create shared memory segment. | |
| char * | _magic_token |
| Magic token. | |
| char * | _shm_magic_token |
| Magic token as stored in the shared memory segment. | |
| SharedMemory_header_t * | _shm_header |
| general header as stored in the shared memory segment | |
| void * | _shm_upper_bound |
| Upper bound of memory. | |
| long unsigned int | _shm_offset |
| Offset to the master's base addr. | |
Shared memory image buffer.
Write images to or retrieve images from a shared memory segment.
Definition at line 135 of file shm_image.h.
| firevision::SharedMemoryImageBuffer::SharedMemoryImageBuffer | ( | const char * | image_id, |
| colorspace_t | cspace, | ||
| unsigned int | width, | ||
| unsigned int | height | ||
| ) |
Write Constructor.
Create a new shared memory segment. Will open a shared memory segment that exactly fits the given information. Will throw an error if image with id image_id exists. I will create a new segment if no matching segment was found. The segment is accessed in read-write mode.
Use this constructor to open a shared memory image buffer for writing.
| image_id | image ID to open |
| cspace | colorspace |
| width | image width |
| height | image height |
Definition at line 63 of file shm_image.cpp.
References fawkes::SharedMemory::add_semaphore().
| firevision::SharedMemoryImageBuffer::SharedMemoryImageBuffer | ( | const char * | image_id, |
| bool | is_read_only = true |
||
| ) |
Read Constructor.
This constructor is used to search for an existing shared memory segment. It will throw an error if it cannot find a segment with the specified data. The segment is opened read-only by default, but this can be overridden with the is_read_only argument if needed.
Use this constructor to open an image for reading.
| image_id | Image ID to open |
| is_read_only | true to open image read-only |
Definition at line 87 of file shm_image.cpp.
| firevision::SharedMemoryImageBuffer::~SharedMemoryImageBuffer | ( | ) |
| unsigned char * firevision::SharedMemoryImageBuffer::buffer | ( | ) | const |
Get image buffer.
Definition at line 234 of file shm_image.cpp.
References fawkes::SharedMemory::_memptr.
Referenced by firevision::FuseImageContent::FuseImageContent(), OpenNiDepthThread::loop(), OpenNiImageThread::loop(), OpenNiPclOnlyThread::loop(), FvRetrieverThread::loop(), and OpenNiUserTrackerThread::loop().
| Time firevision::SharedMemoryImageBuffer::capture_time | ( | ) | const |
Get the time when the image was captured.
Definition at line 194 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
Referenced by firevision::FuseImageContent::FuseImageContent(), and OpenNiPclOnlyThread::loop().
| void firevision::SharedMemoryImageBuffer::capture_time | ( | long int * | sec, |
| long int * | usec | ||
| ) | const |
Get the time when the image was captured.
| sec | upon return contains the seconds part of the time |
| usec | upon return contains the micro seconds part of the time |
Definition at line 184 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
| bool firevision::SharedMemoryImageBuffer::circle_found | ( | ) | const |
Check if circle was found .
Definition at line 482 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::flag_circle_found.
| unsigned int firevision::SharedMemoryImageBuffer::circle_radius | ( | ) | const |
Get circle radius.
Definition at line 334 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_radius.
Referenced by set_circle_radius().
| int firevision::SharedMemoryImageBuffer::circle_x | ( | ) | const |
Get circle X.
Definition at line 314 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_x.
Referenced by set_circle_x().
| int firevision::SharedMemoryImageBuffer::circle_y | ( | ) | const |
Get circle Y.
Definition at line 324 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::circle_y.
Referenced by set_circle_y().
|
static |
Erase all shared memory segments that contain FireVision images.
| use_lister | if true a lister is used to print the shared memory segments to stdout while cleaning up. |
Definition at line 507 of file shm_image.cpp.
References fawkes::SharedMemory::erase_orphaned().
| colorspace_t firevision::SharedMemoryImageBuffer::colorspace | ( | ) | const |
Get color space.
Definition at line 244 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::colorspace.
Referenced by firevision::FuseImageContent::FuseImageContent().
|
static |
Check image availability.
| image_id | image ID to check |
Definition at line 528 of file shm_image.cpp.
| const char * firevision::SharedMemoryImageBuffer::frame_id | ( | ) | const |
Get frame ID.
Definition at line 173 of file shm_image.cpp.
References firevision::SharedMemoryImageBufferHeader::frame_id().
| unsigned int firevision::SharedMemoryImageBuffer::height | ( | ) | const |
Get image height.
Definition at line 264 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::height.
Referenced by firevision::FuseImageContent::FuseImageContent(), and OpenNiPclOnlyThread::init().
| const char * firevision::SharedMemoryImageBuffer::image_id | ( | ) | const |
Get Image ID.
Definition at line 163 of file shm_image.cpp.
Referenced by firevision::FuseImageContent::FuseImageContent().
|
static |
List all shared memory segments that contain a FireVision image.
Definition at line 490 of file shm_image.cpp.
| unsigned int firevision::SharedMemoryImageBuffer::roi_height | ( | ) | const |
Get ROI height.
Definition at line 304 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_height.
| unsigned int firevision::SharedMemoryImageBuffer::roi_width | ( | ) | const |
Get ROI width.
Definition at line 294 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_width.
| unsigned int firevision::SharedMemoryImageBuffer::roi_x | ( | ) | const |
Get ROI X.
Definition at line 274 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_x.
Referenced by set_roi(), and set_roi_x().
| unsigned int firevision::SharedMemoryImageBuffer::roi_y | ( | ) | const |
Get ROI Y.
Definition at line 284 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::roi_y.
Referenced by set_roi(), and set_roi_y().
| void firevision::SharedMemoryImageBuffer::set_capture_time | ( | fawkes::Time * | time | ) |
Set the capture time.
| time | capture time |
Definition at line 204 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, firevision::SharedMemoryImageBuffer_header_t::capture_time_usec, and fawkes::Time::get_timeval().
Referenced by OpenNiDepthThread::loop(), OpenNiImageThread::loop(), and FvRetrieverThread::loop().
| void firevision::SharedMemoryImageBuffer::set_capture_time | ( | long int | sec, |
| long int | usec | ||
| ) |
Set the capture time.
| sec | seconds part of capture time |
| usec | microseconds part of capture time |
Definition at line 220 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::capture_time_sec, and firevision::SharedMemoryImageBuffer_header_t::capture_time_usec.
| void firevision::SharedMemoryImageBuffer::set_circle | ( | int | x, |
| int | y, | ||
| unsigned int | r | ||
| ) |
Set circle data.
| x | circle X |
| y | circle Y |
| r | circle radius |
Definition at line 457 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::circle_radius, firevision::SharedMemoryImageBuffer_header_t::circle_x, and firevision::SharedMemoryImageBuffer_header_t::circle_y.
| void firevision::SharedMemoryImageBuffer::set_circle_found | ( | bool | found | ) |
Set circle found.
| found | true if circle found |
Definition at line 472 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::flag_circle_found.
| void firevision::SharedMemoryImageBuffer::set_circle_radius | ( | unsigned int | circle_radius | ) |
Set circle radius.
| circle_radius | new circle radius |
Definition at line 442 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::circle_radius, and circle_radius().
| void firevision::SharedMemoryImageBuffer::set_circle_x | ( | int | circle_x | ) |
Set circle X.
| circle_x | new circle X |
Definition at line 416 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::circle_x, and circle_x().
| void firevision::SharedMemoryImageBuffer::set_circle_y | ( | int | circle_y | ) |
Set circle Y.
| circle_y | new circle Y |
Definition at line 429 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::circle_y, and circle_y().
| void firevision::SharedMemoryImageBuffer::set_frame_id | ( | const char * | frame_id | ) |
Set frame ID.
| frame_id | new frame ID |
Definition at line 152 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::frame_id, and firevision::SharedMemoryImageBufferHeader::set_frame_id().
Referenced by FvRetrieverThread::init(), and OpenNiPointCloudThread::init().
| bool firevision::SharedMemoryImageBuffer::set_image_id | ( | const char * | image_id | ) |
Set image number.
This will close the currently opened image and will try to open the new image. This operation should be avoided.
| image_id | new image ID |
Definition at line 136 of file shm_image.cpp.
References fawkes::SharedMemory::_memptr, fawkes::SharedMemory::attach(), fawkes::SharedMemory::free(), firevision::SharedMemoryImageBufferHeader::raw_header(), and firevision::SharedMemoryImageBufferHeader::set_image_id().
| void firevision::SharedMemoryImageBuffer::set_roi | ( | unsigned int | roi_x, |
| unsigned int | roi_y, | ||
| unsigned int | roi_w, | ||
| unsigned int | roi_h | ||
| ) |
Set ROI data.
Definition at line 399 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::roi_height, firevision::SharedMemoryImageBuffer_header_t::roi_width, firevision::SharedMemoryImageBuffer_header_t::roi_x, roi_x(), firevision::SharedMemoryImageBuffer_header_t::roi_y, and roi_y().
| void firevision::SharedMemoryImageBuffer::set_roi_height | ( | unsigned int | roi_h | ) |
Set ROI height.
| roi_h | new ROI height |
Definition at line 383 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_height.
| void firevision::SharedMemoryImageBuffer::set_roi_width | ( | unsigned int | roi_w | ) |
Set ROI width.
| roi_w | new ROI width |
Definition at line 370 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, and firevision::SharedMemoryImageBuffer_header_t::roi_width.
| void firevision::SharedMemoryImageBuffer::set_roi_x | ( | unsigned int | roi_x | ) |
Set ROI X.
| roi_x | new ROI X |
Definition at line 344 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::roi_x, and roi_x().
| void firevision::SharedMemoryImageBuffer::set_roi_y | ( | unsigned int | roi_y | ) |
Set ROI Y.
| roi_y | new ROI Y |
Definition at line 357 of file shm_image.cpp.
References fawkes::SharedMemory::_is_read_only, firevision::SharedMemoryImageBuffer_header_t::roi_y, and roi_y().
| unsigned int firevision::SharedMemoryImageBuffer::width | ( | ) | const |
Get image width.
Definition at line 254 of file shm_image.cpp.
References firevision::SharedMemoryImageBuffer_header_t::width.
Referenced by firevision::FuseImageContent::FuseImageContent(), and OpenNiPclOnlyThread::init().
|
static |
Erase a specific shared memory segment that contains an image.
| image_id | ID of image to wipe |
Definition at line 543 of file shm_image.cpp.
References fawkes::SharedMemory::erase().