struct eosio::multi_index::index

Class List > eosio :: multi_index :: index

Classes

Type Name
struct const_iterator

Public Types

Type Name
enum table_name { table_name = static_cast<uint64_t>(TableName), index_name = static_cast<uint64_t>(IndexName), index_number = Number, index_table_name = (static_cast<uint64_t>(TableName) & 0xFFFFFFFFFFFFFFF0ULL)
(Number & 0x000000000000000FULL) }
typedef Extractor secondary_extractor_type
typedef std::decay< decltype(Extractor()(nullptr))>::type secondary_key_type
typedef std::reverse_iterator< const_iterator > const_reverse_iterator
struct multi_index::index::const_iterator

Friends

Type Name
friend class multi_index

Public Static Functions

Type Name
static constexpr static bool validate_index_name (eosio::name n)
static constexpr static uint64_t name ()
static constexpr static uint64_t number ()
static auto extract_secondary_key (const T & obj)

Public Functions

Type Name
const_iterator cbegin () const
const_iterator begin () const
const_iterator cend () const
const_iterator end () const
const_reverse_iterator crbegin () const
const_reverse_iterator rbegin () const
const_reverse_iterator crend () const
const_reverse_iterator rend () const
const_iterator find (secondary_key_type && secondary) const
const_iterator find (const secondary_key_type & secondary) const
const_iterator require_find (secondary_key_type && secondary, const char * error_msg = "unable to find secondary key") const
const_iterator require_find (const secondary_key_type & secondary, const char * error_msg = "unable to find secondary key") const
const T & get (secondary_key_type && secondary, const char * error_msg = "unable to find secondary key") const
const T & get (const secondary_key_type & secondary, const char * error_msg = "unable to find secondary key") const
const_iterator lower_bound (secondary_key_type && secondary) const
const_iterator lower_bound (const secondary_key_type & secondary) const
const_iterator upper_bound (secondary_key_type && secondary) const
const_iterator upper_bound (const secondary_key_type & secondary) const
const_iterator iterator_to (const T & obj)
void modify (const_iterator itr, eosio::name payer, Lambda && updater)
void modify (const T & obj, eosio::name payer, Lambda && updater)
const_iterator erase (const_iterator itr)
eosio::name get_code () const
uint64_t get_scope () const

Public Types Documentation

enum constants

enum eosio::multi_index::index::constants {
    table_name = static_cast<uint64_t>(TableName),
    index_name = static_cast<uint64_t>(IndexName),
    index_number = Number,
    index_table_name = (static_cast<uint64_t>(TableName) & 0xFFFFFFFFFFFFFFF0ULL)
                                    | (Number & 0x000000000000000FULL),
};

typedef secondary_extractor_type

typedef Extractor eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::secondary_extractor_type;

typedef secondary_key_type

typedef std::decay<decltype( Extractor()(nullptr) )>::type eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::secondary_key_type;

typedef const_reverse_iterator

typedef std::reverse_iterator<const_iterator> eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::const_reverse_iterator;

struct multi_index::index::const_iterator

Friends Documentation

friend multi_index

friend class multi_index;

Public Static Functions Documentation

function validate_index_name

static constexpr static bool eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::validate_index_name(
    eosio::name n
)

function name

static constexpr static uint64_t eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::name()

function number

static constexpr static uint64_t eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::number()

function extract_secondary_key

static static auto eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::extract_secondary_key(
    const T & obj
)

Public Functions Documentation

function cbegin

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::cbegin() const

function begin

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::begin() const

function cend

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::cend() const

function end

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::end() const

function crbegin

const_reverse_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::crbegin() const

function rbegin

const_reverse_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::rbegin() const

function crend

const_reverse_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::crend() const

function rend

const_reverse_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::rend() const

function find (1/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::find(
    secondary_key_type && secondary
) const

function find (2/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::find(
    const secondary_key_type & secondary
) const

function require_find (1/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::require_find(
    secondary_key_type && secondary,
    const char * error_msg = "unable to find secondary key"
) const

function require_find (2/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::require_find(
    const secondary_key_type & secondary,
    const char * error_msg = "unable to find secondary key"
) const

function get (1/2)

const T& eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::get(
    secondary_key_type && secondary,
    const char * error_msg = "unable to find secondary key"
) const

Gets the object with the smallest primary key in the case where the secondary key is not unique. Avoid the common pitfall of copy-assigning the T& reference returned to a stack-allocated local variable and then passing that into modify of the multi-index. The most common mistake is when the local variable is defined as auto typename, instead it should be of type auto& or decltype(auto).

function get (2/2)

const T& eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::get(
    const secondary_key_type & secondary,
    const char * error_msg = "unable to find secondary key"
) const

Gets the object with the smallest primary key in the case where the secondary key is not unique. Avoid the common pitfall of copy-assigning the T& reference returned to a stack-allocated local variable and then passing that into modify of the multi-index. The most common mistake is when the local variable is defined as auto typename, instead it should be of type auto& or decltype(auto).

function lower_bound (1/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::lower_bound(
    secondary_key_type && secondary
) const

function lower_bound (2/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::lower_bound(
    const secondary_key_type & secondary
) const

function upper_bound (1/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::upper_bound(
    secondary_key_type && secondary
) const

function upper_bound (2/2)

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::upper_bound(
    const secondary_key_type & secondary
) const

function iterator_to

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::iterator_to(
    const T & obj
)

Warning: the interator_to can have undefined behavior if the caller passes in a reference to a stack-allocated object rather than the reference returned by get or by dereferencing a const_iterator.

function modify (1/2)

template<typename Lambda>
void eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::modify(
    const_iterator itr,
    eosio::name payer,
    Lambda && updater
)

function modify (2/2)

template<typename Lambda>
void eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::modify(
    const T & obj,
    eosio::name payer,
    Lambda && updater
)

function erase

const_iterator eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::erase(
    const_iterator itr
)

function get_code

eosio::name eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::get_code() const

function get_scope

uint64_t eosio::multi_index< TableName, T, Indices >::index< IndexName, Extractor, Number, IsConst >::get_scope() const

The documentation for this class was generated from the following file: libraries/eosiolib/contracts/eosio/multi\_index.hpp