HepMC3 event record library
Data Structures | Public Member Functions | Data Fields | Private Member Functions | Private Attributes
buffer_info Struct Reference

Information record describing a Python buffer object. More...

#include <buffer_info.h>

+ Collaboration diagram for buffer_info:

Data Structures

struct  private_ctr_tag
 

Public Member Functions

 buffer_info (void *ptr, ssize_t itemsize, const std::string &format, ssize_t ndim, detail::any_container< ssize_t > shape_in, detail::any_container< ssize_t > strides_in, bool readonly=false)
 
template<typename T >
 buffer_info (T *ptr, detail::any_container< ssize_t > shape_in, detail::any_container< ssize_t > strides_in, bool readonly=false)
 
 buffer_info (void *ptr, ssize_t itemsize, const std::string &format, ssize_t size, bool readonly=false)
 
buffer_infooperator= (const buffer_info &)=delete
 
 buffer_info (buffer_info &&other)
 
buffer_infooperator= (buffer_info &&rhs)
 
Py_buffer * view () const
 
Py_buffer *& view ()
 

Data Fields

void * ptr = nullptr
 
ssize_t itemsize = 0
 
ssize_t size = 0
 
std::string format
 
ssize_t ndim = 0
 
std::vector< ssize_t > shape
 
std::vector< ssize_t > strides
 
bool readonly = false
 
 readonly
 

Private Member Functions

 buffer_info (private_ctr_tag, void *ptr, ssize_t itemsize, const std::string &format, ssize_t ndim, detail::any_container< ssize_t > &&shape_in, detail::any_container< ssize_t > &&strides_in, bool readonly)
 

Private Attributes

Py_buffer * m_view = nullptr
 
bool ownview = false
 

Detailed Description

Information record describing a Python buffer object.

Definition at line 40 of file buffer_info.h.

Field Documentation

readonly
Initial value:
{ }
template <typename T>
buffer_info(T *ptr, ssize_t size, bool readonly=false)
: buffer_info(ptr, sizeof(T), format_descriptor<T>::format(), size, readonly) { }
template <typename T>
buffer_info(const T *ptr, ssize_t size, bool readonly=true)
: buffer_info(const_cast<T*>(ptr), sizeof(T), format_descriptor<T>::format(), size, readonly) { }
explicit buffer_info(Py_buffer *view, bool ownview = true)
: buffer_info(view->buf, view->itemsize, view->format, view->ndim,
{view->shape, view->shape + view->ndim},
view->strides
? std::vector<ssize_t>(view->strides, view->strides + view->ndim)
: detail::c_strides({view->shape, view->shape + view->ndim}, view->itemsize),
view->readonly) {
this->m_view = view;
this->ownview = ownview;
}
buffer_info(const buffer_info &) = delete

Definition at line 67 of file buffer_info.h.


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