Public Types | Public Member Functions
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type > Struct Template Reference

Public Types

typedef accessor_common_base< T > _base_type
 
typedef accessor< T > _self_type
 
typedef _base_type::key_type key_type
 
typedef _base_type::mapped_type mapped_type
 
typedef _base_type::value_type value_type
 
typedef _base_type::size_type size_type
 
- Public Types inherited from efl::eina::accessor_common_base< T >
typedef unsigned int key_type
 Type for accessor key. More...
 
typedef T mapped_type
 Type for accessor mapped elements. More...
 
typedef T value_type
 Type for accessor elements. More...
 
typedef std::size_t size_type
 Type for size information used in the accessor. More...
 

Public Member Functions

 accessor ()
 Default constructor. More...
 
 accessor (Eina_Accessor *impl)
 Create an accessor object that wraps the given Eina accessor. More...
 
 accessor (_self_type const &other)
 Copy constructor. More...
 
_self_typeoperator= (_self_type const &other)
 Assignment Operator. More...
 
 ~accessor ()
 Destructor. More...
 
mapped_type operator[] (size_type i) const
 Retrieve the data of the accessor at a given position. More...
 
void swap (_self_type &other)
 Swap content between both objects. More...
 
 operator bool () const
 Cast to boolean based on the wrapped Eina_Accessor. More...
 
- Public Member Functions inherited from efl::eina::accessor_common_base< T >
 accessor_common_base ()
 Default constructor. More...
 
 accessor_common_base (Eina_Accessor *impl)
 Create an accessor object that wraps the given Eina accessor. More...
 
 accessor_common_base (accessor_common_base< T > const &other)
 Copy constructor. More...
 
accessor_common_base< T > & operator= (accessor_common_base< T > const &other)
 Assignment Operator. More...
 
 ~accessor_common_base ()
 Destructor. More...
 
Eina_Accessornative_handle () const
 Get the handle for the wrapped Eina_Accessor. More...
 
Eina_Accessorrelease_native_handle ()
 Release the handle of the wrapped Eina_Accessor. More...
 
void swap (accessor_common_base< T > &other)
 Swap content between both objects. More...
 
 operator bool () const
 Cast to boolean based on the wrapped Eina_Accessor. More...
 

Additional Inherited Members

- Data Fields inherited from efl::eina::accessor_common_base< T >
Eina_Accessor_impl
 

Constructor & Destructor Documentation

◆ accessor() [1/3]

template<typename T >
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::accessor ( )
inline

Default constructor.

Creates an empty accessor.

◆ accessor() [2/3]

template<typename T >
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::accessor ( Eina_Accessor impl)
inlineexplicit

Create an accessor object that wraps the given Eina accessor.

Parameters
implNative Eina_Accessor to be wrapped.

This constructor creates an accessor object that wraps the given Eina_Accessor and provides access to the data pointed by it.

Warning
It is important to note that the created accessor object gains ownership of the given handle, deallocating it at destruction time.

◆ accessor() [3/3]

template<typename T >
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::accessor ( _self_type const &  other)
inline

Copy constructor.

Creates a copy of the given accessor object.

Parameters
otherOther accessor object.

This constructor clones the internal Eina_Accessor of the given accessor object, so that the newly created object can be used freely.

◆ ~accessor()

template<typename T >
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::~accessor ( )
inline

Destructor.

Free the internal Eina_Acessor.

Member Function Documentation

◆ operator=()

template<typename T >
_self_type& efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::operator= ( _self_type const &  other)
inline

Assignment Operator.

Replace the current content.

Parameters
otherOther accessor object.
Exceptions
<tt>eina::system_error</tt>if the Eina accessor could not be cloned.

This operator replaces the current native Eina accessor by a copy of the native accessor inside the given object.

◆ operator[]()

template<typename T >
mapped_type efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::operator[] ( size_type  i) const
inline

Retrieve the data of the accessor at a given position.

Parameters
iThe position of the element.
Returns
Constant reference to the retrieved data.
Exceptions
<tt>eina::system_error</tt>if the given element could not be retrieved.

This operator retrieves a constant reference to the element at the given position. If the element could not be retrieved an eina::system_error is thrown.

References eina_accessor_data_get(), and efl::eina::get_error_code().

◆ swap()

template<typename T >
void efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::swap ( _self_type other)
inline

Swap content between both objects.

Parameters
otherOther accessor object.

This member function swaps the internal Eina_Acessor with the given accessor object.

References efl::eina::swap().

◆ operator bool()

template<typename T >
efl::eina::accessor< T, typename std::enable_if< std::is_base_of<::efl::eo::concrete, T >::value, T >::type >::operator bool ( ) const
inlineexplicit

Cast to boolean based on the wrapped Eina_Accessor.

Returns
true if the wrapped handle is not NULL, false otherwise.

Boolean typecast overload for easy validation of the accessor object. Returns false if it does not have an internal Eina_Accessor, i.e. if the current handle is not NULL.

References efl::eina::accessor_common_base< T >::native_handle().