Hazelcast C++ Client
Hazelcast C++ Client Library
All Classes Functions Variables Enumerations Enumerator Pages
hazelcast::client::ilist Class Reference

Concurrent, distributed, client implementation of list. More...

#include <ilist.h>

+ Inheritance diagram for hazelcast::client::ilist:

Public Member Functions

boost::future< boost::uuids::uuid > add_item_listener (item_listener &&listener, bool include_value)
 Warning 1: If listener should do a time consuming operation, off-load the operation to another thread. More...
 
template<typename E >
boost::future< bool > contains (const E &element)
 
template<typename E >
boost::future< std::vector< E > > to_array ()
 
template<typename E >
boost::future< bool > add (const E &element)
 
template<typename E >
boost::future< bool > remove (const E &element)
 
template<typename E >
boost::future< bool > contains_all (const std::vector< E > &elements)
 
template<typename E >
boost::future< bool > add_all (const std::vector< E > &elements)
 
template<typename E >
boost::future< bool > add_all (int32_t index, const std::vector< E > &elements)
 Adds elements in vector to the list with given order. More...
 
template<typename E >
boost::future< bool > remove_all (const std::vector< E > &elements)
 
template<typename E >
boost::future< bool > retain_all (const std::vector< E > &elements)
 Removes the elements from this list that are not available in given "elements" vector. More...
 
template<typename E >
boost::future< boost::optional< E > > get (int32_t index)
 You can check if element is available by. More...
 
template<typename E , typename R = E>
boost::future< boost::optional< R > > set (int32_t index, const E &element)
 Replaced the element in the given index. More...
 
template<typename E >
boost::future< void > add (int32_t index, const E &element)
 Adds the element to the given index. More...
 
template<typename E >
boost::future< boost::optional< E > > remove (int32_t index)
 
template<typename E >
boost::future< int > index_of (const E &element)
 
template<typename E >
boost::future< int32_t > last_index_of (const E &element)
 
template<typename E >
boost::future< std::vector< E > > sub_list (int32_t from_index, int32_t to_index)
 

Static Public Attributes

static constexpr const char * SERVICE_NAME = "hz:impl:listService"
 

Friends

class spi::ProxyManager
 

Detailed Description

Concurrent, distributed, client implementation of list.

Definition at line 28 of file ilist.h.

Member Function Documentation

◆ add() [1/2]

template<typename E >
boost::future<bool> hazelcast::client::ilist::add ( const E &  element)
inline
Parameters
element
Returns
true if element is added successfully.

Definition at line 80 of file ilist.h.

80  {
81  return proxy::IListImpl::add(to_data(element));
82  }

◆ add() [2/2]

template<typename E >
boost::future<void> hazelcast::client::ilist::add ( int32_t  index,
const E &  element 
)
inline

Adds the element to the given index.

Shifts others to the right.

Parameters
indexinsert position
elementto be inserted.
Exceptions
Iclass_castif the type of the specified element is incompatible with the server side.
index_out_of_boundsif the index is out of range.

Definition at line 190 of file ilist.h.

190  {
191  return proxy::IListImpl::add(index, to_data(element));
192  }

◆ add_all() [1/2]

template<typename E >
boost::future<bool> hazelcast::client::ilist::add_all ( const std::vector< E > &  elements)
inline
Parameters
elementsstd::vector<E>
Returns
true if all elements given in vector can be added to list.

Definition at line 110 of file ilist.h.

110  {
111  return proxy::IListImpl::add_all_data(to_data_collection(elements));
112  }

◆ add_all() [2/2]

template<typename E >
boost::future<bool> hazelcast::client::ilist::add_all ( int32_t  index,
const std::vector< E > &  elements 
)
inline

Adds elements in vector to the list with given order.

Starts adding elements from given index, and shifts others to the right.

Parameters
indexstart point of inserting given elements
elementsvector of elements that will be added to list
Returns
true if list elements are added.
Exceptions
index_out_of_boundsif the index is out of range.

Definition at line 125 of file ilist.h.

125  {
126  return proxy::IListImpl::add_all_data(index, to_data_collection(elements));
127  }

◆ add_item_listener()

boost::future<boost::uuids::uuid> hazelcast::client::ilist::add_item_listener ( item_listener &&  listener,
bool  include_value 
)
inline

Warning 1: If listener should do a time consuming operation, off-load the operation to another thread.

otherwise it will slow down the system.

Warning 2: Do not make a call to hazelcast. It can cause deadlock.

Parameters
listenerthat will be added
includeValuebool value representing value should be included in ItemEvent or not.
Returns
registrationId that can be used to remove item listener

Definition at line 44 of file ilist.h.

44  {
45  std::unique_ptr<impl::item_event_handler<protocol::codec::list_addlistener_handler>> itemEventHandler(
46  new impl::item_event_handler<protocol::codec::list_addlistener_handler>(
47  get_name(), get_context().get_client_cluster_service(),
48  get_context().get_serialization_service(),
49  std::move(listener),
50  include_value));
51 
52  return proxy::IListImpl::add_item_listener(std::move(itemEventHandler), include_value);
53  }

◆ contains()

template<typename E >
boost::future<bool> hazelcast::client::ilist::contains ( const E &  element)
inline
Parameters
element
Returns
true if list contains element

Definition at line 61 of file ilist.h.

61  {
62  return proxy::IListImpl::contains(to_data(element));
63  }

◆ contains_all()

template<typename E >
boost::future<bool> hazelcast::client::ilist::contains_all ( const std::vector< E > &  elements)
inline
Parameters
elementsstd::vector<E>
Returns
true if this list contains all elements given in vector.

Definition at line 100 of file ilist.h.

100  {
101  return proxy::IListImpl::contains_all_data(to_data_collection(elements));
102  }

◆ get()

template<typename E >
boost::future<boost::optional<E> > hazelcast::client::ilist::get ( int32_t  index)
inline

You can check if element is available by.

 auto e = list.get(5).get();
 if(e.has_value())
     //......;
Parameters
index
Returns
element in given index. If not available returns empty constructed shared_ptr.
Exceptions
index_out_of_boundsif the index is out of range.

Definition at line 163 of file ilist.h.

163  {
164  return to_object<E>(proxy::IListImpl::get_data(index));
165  }

◆ index_of()

template<typename E >
boost::future<int> hazelcast::client::ilist::index_of ( const E &  element)
inline
Parameters
elementthat will be searched
Returns
index of first occurrence of given element in the list. Returns -1 if element is not in the list.

Definition at line 213 of file ilist.h.

213  {
214  return proxy::IListImpl::index_of(to_data(element));
215  }

◆ last_index_of()

template<typename E >
boost::future<int32_t> hazelcast::client::ilist::last_index_of ( const E &  element)
inline
Parameters
elementthat will be searched
Returns
index of last occurrence of given element in the list. Returns -1 if element is not in the list.

Definition at line 223 of file ilist.h.

223  {
224  return proxy::IListImpl::last_index_of(to_data(element));
225  }

◆ remove() [1/2]

template<typename E >
boost::future<bool> hazelcast::client::ilist::remove ( const E &  element)
inline
Parameters
element
Returns
true if element is removed successfully.

Definition at line 90 of file ilist.h.

90  {
91  return proxy::IListImpl::remove(to_data(element));
92  }

◆ remove() [2/2]

template<typename E >
boost::future<boost::optional<E> > hazelcast::client::ilist::remove ( int32_t  index)
inline
Parameters
index
Returns
element in given index. If not available returns empty constructed shared_ptr.
See also
get
Exceptions
index_out_of_boundsif the index is out of range.

Definition at line 202 of file ilist.h.

202  {
203  return to_object<E>(proxy::IListImpl::remove_data(index));
204  }

◆ remove_all()

template<typename E >
boost::future<bool> hazelcast::client::ilist::remove_all ( const std::vector< E > &  elements)
inline
Parameters
elementsstd::vector<E>
Returns
true if all elements are removed successfully.

Definition at line 135 of file ilist.h.

135  {
136  return proxy::IListImpl::remove_all_data(to_data_collection(elements));
137  }

◆ retain_all()

template<typename E >
boost::future<bool> hazelcast::client::ilist::retain_all ( const std::vector< E > &  elements)
inline

Removes the elements from this list that are not available in given "elements" vector.

Parameters
elementsstd::vector<E>
Returns
true if operation is successful.

Definition at line 146 of file ilist.h.

146  {
147  return proxy::IListImpl::retain_all_data(to_data_collection(elements));
148  }

◆ set()

template<typename E , typename R = E>
boost::future<boost::optional<R> > hazelcast::client::ilist::set ( int32_t  index,
const E &  element 
)
inline

Replaced the element in the given index.

And returns element if there were entry before inserting.

Parameters
indexinsert position
elementto be inserted.
Returns
oldElement in given index.
Exceptions
Iclass_castif the type of the specified element is incompatible with the server side.
index_out_of_boundsif the index is out of range.

Definition at line 177 of file ilist.h.

177  {
178  return to_object<R>(proxy::IListImpl::set_data(index, to_data(element)));
179  }

◆ sub_list()

template<typename E >
boost::future<std::vector<E> > hazelcast::client::ilist::sub_list ( int32_t  from_index,
int32_t  to_index 
)
inline
Returns
the sublist as vector between given indexes.
Exceptions
index_out_of_boundsif the index is out of range.

Definition at line 233 of file ilist.h.

233  {
234  return to_object_vector<E>(proxy::IListImpl::sub_list_data(from_index, to_index));
235  }

◆ to_array()

template<typename E >
boost::future<std::vector<E> > hazelcast::client::ilist::to_array ( )
inline
Returns
all elements as std::vector

Definition at line 70 of file ilist.h.

70  {
71  return to_object_vector<E>(proxy::IListImpl::to_array_data());
72  }

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