Public Member Functions | Private Member Functions | Private Attributes
rcg::Buffer Class Reference

The buffer class encapsulates a Genicam buffer that is provided by a stream. More...

#include <buffer.h>

List of all members.

Public Member Functions

 Buffer (const std::shared_ptr< const GenTLWrapper > &gentl, Stream *parent)
 Constructs a buffer class as wrapper around a buffer handle.
void * getBase (std::uint32_t part) const
 Returns the base address of the specified part of the multi-part buffer.
uint64_t getChunkLayoutID () const
 Returns the chunk layout id, which serves as an indicator that the chunk layout has changed and the application should parse the chunk layout again.
bool getContainsChunkdata () const
 Returns if the buffer contains chunk data.
bool getDataLargerThanBuffer () const
 Signals if the memory that was allocated for this buffer is too small.
size_t getDataSize () const
 Returns the size of data intended to the written to the buffer the last time it has been filled.
size_t getDeliveredChunkPayloadSize () const
 Returnes the delivered chung payload size.
size_t getDeliveredImageHeight (std::uint32_t part) const
 Returns the number of lines that are delivered in this buffer.
std::string getFilename () const
 Returns the filename in case the payload contains a file.
uint64_t getFrameID () const
 Returns the sequentially incremented number of the frame.
void * getGlobalBase () const
 Returns the global base address of the buffer memory.
size_t getGlobalSize () const
 Returns the global size of the buffer.
void * getHandle () const
 Get internal stream handle.
size_t getHeight (std::uint32_t part) const
 Returns the height of the image in pixel.
bool getImagePresent (std::uint32_t part) const
 Returns if a 2D, 3D or confidence image is present in the specified part.
bool getIsAcquiring () const
 Signals if the buffer is currently being filled with data.
bool getIsIncomplete () const
 Signals if the buffer is incomplete due to an error.
bool getIsQueued () const
 Signals if the buffer is associated to the input or output queue.
bool getNewData () const
 Returns if the buffer contains new data.
std::uint32_t getNumberOfParts () const
 Returns the number of parts, excluding chunk data.
size_t getPartDataType (uint32_t part) const
 Returns the data type id of the specified part as defined in PARTDATATYPE_IDS.
uint64_t getPartSourceID (std::uint32_t part) const
 Returns the source id of the specified part.
size_t getPayloadType () const
 Returns the payload type according to PAYLOADTYPE_INFO_IDS.
uint64_t getPixelFormat (std::uint32_t part) const
 Returns the pixel format of the specified part as defined in the PFNC.
uint64_t getPixelFormatNamespace (std::uint32_t part) const
 Returns the pixel format namespace, which preferably should be PIXELFORMAT_NAMESPACE_PFNC_32BIT.
size_t getSize (std::uint32_t part) const
 Returns the size of the specified part of the mult-part buffer.
size_t getSizeFilled () const
 Returns the number of bytes written into the buffer last time it has been filled.
uint64_t getTimestamp () const
 Returns the timestamp of the buffer.
uint64_t getTimestampNS () const
 Returns the acquisition timestamp of the data in this buffer in ns.
std::string getTLType () const
 Returns the type the used transport layer.
void * getUserPtr () const
 Returns the private data pointer of the GenTL Consumer.
size_t getWidth (std::uint32_t part) const
 Returns the width of the image in pixel.
size_t getXOffset (std::uint32_t part) const
 Returns the horizontal offset of the data in the buffer in pixels from the image origin to handle areas of interest.
size_t getXPadding (std::uint32_t part) const
 Returns horizontal padding of the data in the buffer in bytes.
size_t getYOffset (std::uint32_t part) const
 Returns the vertical offset of the data in the buffer in lines from the image origin to handle areas of interest.
size_t getYPadding () const
 Returns vertical padding of the data in the buffer in bytes.
bool isBigEndian () const
 Returns if the data is given as big or little endian.
void setHandle (void *handle)
 Set the buffer handle that this object should manage.

Private Member Functions

 Buffer (class Buffer &)
Bufferoperator= (const Buffer &)

Private Attributes

void * buffer
std::shared_ptr< const
GenTLWrapper
gentl
bool multipart
Streamparent

Detailed Description

The buffer class encapsulates a Genicam buffer that is provided by a stream.

A multi-part buffer with one image can be treated like a "normal" buffer.

NOTE: A GenTLException is thrown in case of a severe error.

Definition at line 115 of file buffer.h.


Constructor & Destructor Documentation

rcg::Buffer::Buffer ( const std::shared_ptr< const GenTLWrapper > &  gentl,
Stream parent 
)

Constructs a buffer class as wrapper around a buffer handle.

Buffers must only be constructed by the stream class.

Definition at line 122 of file buffer.cc.

rcg::Buffer::Buffer ( class Buffer ) [private]

Member Function Documentation

void * rcg::Buffer::getBase ( std::uint32_t  part) const

Returns the base address of the specified part of the multi-part buffer.

Returns:
Base address of the buffer memory part.

Definition at line 174 of file buffer.cc.

uint64_t rcg::Buffer::getChunkLayoutID ( ) const

Returns the chunk layout id, which serves as an indicator that the chunk layout has changed and the application should parse the chunk layout again.

Returns:
Chunk layout id.

Definition at line 449 of file buffer.cc.

Returns if the buffer contains chunk data.

Returns:
True if the buffer contains chunk data.

Definition at line 525 of file buffer.cc.

Signals if the memory that was allocated for this buffer is too small.

Returns:
True if buffer is too small.

Definition at line 519 of file buffer.cc.

size_t rcg::Buffer::getDataSize ( ) const

Returns the size of data intended to the written to the buffer the last time it has been filled.

If the buffer is incomplete, the number reports the full size of the original data including the lost parts. If the buffer is complete, the number equals getSizeFilled().

Returns:
Data size in bytes.

Definition at line 484 of file buffer.cc.

Returnes the delivered chung payload size.

Returns:
Chunk payload size.

Definition at line 443 of file buffer.cc.

size_t Buffer::getDeliveredImageHeight ( std::uint32_t  part) const

Returns the number of lines that are delivered in this buffer.

For areea cameras, this is typically the same as the specified image height. For linescan cameras it can be less.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Number of delivered image lines.

Definition at line 429 of file buffer.cc.

std::string rcg::Buffer::getFilename ( ) const

Returns the filename in case the payload contains a file.

Returns:
File name.

Definition at line 455 of file buffer.cc.

uint64_t rcg::Buffer::getFrameID ( ) const

Returns the sequentially incremented number of the frame.

The wrap around depends on the used transport layer technology.

Returns:
Monotonically increasing frame id.

Definition at line 341 of file buffer.cc.

Another important change is to use the new method Buffer::getGlobalBase ( ) const

Returns the global base address of the buffer memory.

Returns:
Global base address of the buffer memory.

Definition at line 164 of file buffer.cc.

size_t rcg::Buffer::getGlobalSize ( ) const

Returns the global size of the buffer.

Returns:
Global size of the buffer in bytes.

Definition at line 169 of file buffer.cc.

void * rcg::Buffer::getHandle ( ) const

Get internal stream handle.

Returns:
Internal handle.

Definition at line 531 of file buffer.cc.

size_t Buffer::getHeight ( std::uint32_t  part) const

Returns the height of the image in pixel.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Height of image.

Definition at line 284 of file buffer.cc.

bool Buffer::getImagePresent ( std::uint32_t  part) const

Returns if a 2D, 3D or confidence image is present in the specified part.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
True if image is present.

Definition at line 346 of file buffer.cc.

Signals if the buffer is currently being filled with data.

Returns:
Flag to indicate that the buffer is currently being filled with data.

Definition at line 237 of file buffer.cc.

Signals if the buffer is incomplete due to an error.

Returns:
Flag to indicate that a buffer was filled but an error occurred during that process.

Definition at line 242 of file buffer.cc.

bool rcg::Buffer::getIsQueued ( ) const

Signals if the buffer is associated to the input or output queue.

Returns:
Flag to indicate if the buffer is in the input pool or output queue.

Definition at line 232 of file buffer.cc.

bool rcg::Buffer::getNewData ( ) const

Returns if the buffer contains new data.

Returns:
Flag to indicate that the buffer contains new data since the last call.

Definition at line 227 of file buffer.cc.

Roboception GenICam Convenience changing their configuration and streaming images Although the tools are meant to be useful when working in a shell or in a their main purpose is to serve as example on how to use the API for reading and setting streaming and synchronizing images API changes in version Version introduced some API changes that require minor changes of programs that use the classes Image and ImageList An object of class Buffer can now represents a single buffer as well as a multipart buffer depending on the availability of multipart support in the used GenTL producer and the GigE vision device Multipart buffers can contain more than one image For simplicity of the interface non multipart buffers are now treated like multipart buffers with just one image For writing code that is able to support multipart after grabbing the buffer the number of parts must be requested with the method Buffer::getNumberOfParts ( ) const

Returns the number of parts, excluding chunk data.

This is 1 if the buffer is not multipart and the buffer is not chunk only.

Returns:
Number of parts.

Definition at line 142 of file buffer.cc.

size_t Buffer::getPartDataType ( uint32_t  part) const

Returns the data type id of the specified part as defined in PARTDATATYPE_IDS.

If this buffer is not mult-part, then 0 is returned.

Returns:
One of PARTDATATYPE_IDS.

Definition at line 258 of file buffer.cc.

uint64_t Buffer::getPartSourceID ( std::uint32_t  part) const

Returns the source id of the specified part.

Images with the same source id are supposed to belong pixelwise together.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Source id of part or 0 if the buffer is not multi-part.

Definition at line 416 of file buffer.cc.

size_t rcg::Buffer::getPayloadType ( ) const

Returns the payload type according to PAYLOADTYPE_INFO_IDS.

Returns:
One of PAYLOADTYPE_INFO_IDS.

Definition at line 382 of file buffer.cc.

uint64_t Buffer::getPixelFormat ( std::uint32_t  part) const

Returns the pixel format of the specified part as defined in the PFNC.

The pixel formats are defined in pixel_formats.h and PFNC.h if getPixelFormatNamespace() returns PIXELFORMAT_NAMESPACE_PFNC_32BIT.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Pixel format id.

Definition at line 388 of file buffer.cc.

uint64_t Buffer::getPixelFormatNamespace ( std::uint32_t  part) const

Returns the pixel format namespace, which preferably should be PIXELFORMAT_NAMESPACE_PFNC_32BIT.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
One of PIXELFORMAT_NAMESPACE_IDS.

Definition at line 402 of file buffer.cc.

size_t rcg::Buffer::getSize ( std::uint32_t  part) const

Returns the size of the specified part of the mult-part buffer.

Returns:
Size of the buffer part in bytes.

Definition at line 197 of file buffer.cc.

size_t rcg::Buffer::getSizeFilled ( ) const

Returns the number of bytes written into the buffer last time it has been filled.

This value is reset to 0 when the buffer is placed into the Input Buffer Pool.

Returns:
Fill size of buffer since last call.

Definition at line 252 of file buffer.cc.

uint64_t rcg::Buffer::getTimestamp ( ) const

Returns the timestamp of the buffer.

Returns:
Timestamp the buffer was acquired.

Definition at line 221 of file buffer.cc.

uint64_t rcg::Buffer::getTimestampNS ( ) const

Returns the acquisition timestamp of the data in this buffer in ns.

Returns:
Timestamp in ns.

Definition at line 489 of file buffer.cc.

std::string rcg::Buffer::getTLType ( ) const

Returns the type the used transport layer.

Returns:
Transport layer type.

Definition at line 247 of file buffer.cc.

void * rcg::Buffer::getUserPtr ( ) const

Returns the private data pointer of the GenTL Consumer.

Returns:
Private data pointer of the GenTL Consumer.

Definition at line 216 of file buffer.cc.

size_t Buffer::getWidth ( std::uint32_t  part) const

Returns the width of the image in pixel.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Width of image.

Definition at line 271 of file buffer.cc.

size_t Buffer::getXOffset ( std::uint32_t  part) const

Returns the horizontal offset of the data in the buffer in pixels from the image origin to handle areas of interest.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Horizontal offset of image.

Definition at line 297 of file buffer.cc.

size_t Buffer::getXPadding ( std::uint32_t  part) const

Returns horizontal padding of the data in the buffer in bytes.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Horizontal padding of image.

Definition at line 323 of file buffer.cc.

size_t Buffer::getYOffset ( std::uint32_t  part) const

Returns the vertical offset of the data in the buffer in lines from the image origin to handle areas of interest.

Parameters:
partPart index, which is ignored if the buffer is not multi-part.
Returns:
Vertical offset of image.

Definition at line 310 of file buffer.cc.

size_t rcg::Buffer::getYPadding ( ) const

Returns vertical padding of the data in the buffer in bytes.

Returns:
Vertical padding of image.

Definition at line 336 of file buffer.cc.

bool rcg::Buffer::isBigEndian ( ) const

Returns if the data is given as big or little endian.

Returns:
True for big endian and false for little endian.

Definition at line 460 of file buffer.cc.

Buffer& rcg::Buffer::operator= ( const Buffer ) [private]
void rcg::Buffer::setHandle ( void *  handle)

Set the buffer handle that this object should manage.

The handle is used until a new handle is set.

Parameters:
handleBuffer handle that replaces a possibly existing handle.

Definition at line 130 of file buffer.cc.


Member Data Documentation

void* rcg::Buffer::buffer [private]

Definition at line 462 of file buffer.h.

std::shared_ptr<const GenTLWrapper> rcg::Buffer::gentl [private]

Definition at line 461 of file buffer.h.

bool rcg::Buffer::multipart [private]

Definition at line 463 of file buffer.h.

Definition at line 460 of file buffer.h.


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


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Thu Jun 6 2019 18:42:49