Hazelcast C++ Client
Hazelcast C++ Client Library
Loading...
Searching...
No Matches
hazelcast::client::iqueue Class Reference

Concurrent, blocking, distributed, observable, client queue. More...

#include <iqueue.h>

Inheritance diagram for hazelcast::client::iqueue:

Public Member Functions

boost::future< boost::uuids::uuid > add_item_listener (item_listener &&listener, bool include_value)
 Adds an item listener for this collection.
template<typename E>
boost::future< bool > offer (const E &element)
 Inserts the specified element into this queue.
template<typename E>
boost::future< void > put (const E &element)
 Puts the element into queue.
template<typename E>
boost::future< bool > offer (const E &element, std::chrono::milliseconds timeout)
 Inserts the specified element into this queue.
template<typename E>
boost::future< boost::optional< E > > take ()
template<typename E>
boost::future< boost::optional< E > > poll (std::chrono::milliseconds timeout)
template<typename E>
boost::future< bool > remove (const E &element)
template<typename E>
boost::future< bool > contains (const E &element)
template<typename E>
boost::future< size_t > drain_to (std::vector< E > &elements)
 Note that elements will be pushed_back to vector.
template<typename E>
boost::future< size_t > drain_to (std::vector< E > &elements, size_t max_elements)
 Note that elements will be pushed_back to vector.
template<typename E>
boost::future< boost::optional< E > > poll ()
 Returns immediately without waiting.
template<typename E>
boost::future< boost::optional< E > > peek ()
 Returns immediately without waiting.
template<typename E>
boost::future< std::vector< E > > to_array ()
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 > 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 queue that are not available in given "elements" vector.

Static Public Attributes

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

Friends

class spi::ProxyManager

Detailed Description

Concurrent, blocking, distributed, observable, client queue.

Definition at line 30 of file iqueue.h.

Member Function Documentation

◆ add_all()

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

Definition at line 233 of file iqueue.h.

234 {
235 return proxy::IQueueImpl::add_all_data(to_data_collection(elements));
236 }

◆ add_item_listener()

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

Adds an item listener for this collection.

Listener will get notified for all collection add/remove events.

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
listeneritem listener
includeValuetrue updated item should be passed to the item listener, false otherwise.
Returns
returns registration id.

Definition at line 51 of file iqueue.h.

54 {
55 std::unique_ptr<
56 impl::item_event_handler<protocol::codec::queue_addlistener_handler>>
57 itemEventHandler(new impl::item_event_handler<
58 protocol::codec::queue_addlistener_handler>(
59 get_name(),
60 get_context().get_logger(),
61 get_context().get_client_cluster_service(),
62 get_context().get_serialization_service(),
63 std::move(listener),
64 include_value));
65
66 return proxy::IQueueImpl::add_item_listener(std::move(itemEventHandler),
67 include_value);
68 }

◆ contains()

template<typename E>
boost::future< bool > hazelcast::client::iqueue::contains ( const E & element)
inline
Parameters
elementto be checked.
Returns
true if queue contains the element.

Definition at line 149 of file iqueue.h.

150 {
151 return proxy::IQueueImpl::contains(to_data(element));
152 }

◆ contains_all()

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

Definition at line 221 of file iqueue.h.

222 {
223 return proxy::IQueueImpl::contains_all_data(
224 to_data_collection(elements));
225 }

◆ drain_to() [1/2]

template<typename E>
boost::future< size_t > hazelcast::client::iqueue::drain_to ( std::vector< E > & elements)
inline

Note that elements will be pushed_back to vector.

Parameters
elementsthe vector that elements will be drained to.
Returns
number of elements drained.

Definition at line 161 of file iqueue.h.

162 {
163 return to_object_drain(proxy::IQueueImpl::drain_to_data(), elements);
164 }

◆ drain_to() [2/2]

template<typename E>
boost::future< size_t > hazelcast::client::iqueue::drain_to ( std::vector< E > & elements,
size_t max_elements )
inline

Note that elements will be pushed_back to vector.

Parameters
maxElementsupper limit to be filled to vector.
elementsvector that elements will be drained to.
Returns
number of elements drained.

Definition at line 174 of file iqueue.h.

176 {
177 return to_object_drain(proxy::IQueueImpl::drain_to_data(max_elements),
178 elements);
179 }

◆ offer() [1/2]

template<typename E>
boost::future< bool > hazelcast::client::iqueue::offer ( const E & element)
inline

Inserts the specified element into this queue.

Parameters
elementto add
Returns
true if the element was added to this queue, else false

Definition at line 78 of file iqueue.h.

79 {
80 return offer(element, std::chrono::milliseconds(0));
81 }
boost::future< bool > offer(const E &element)
Inserts the specified element into this queue.
Definition iqueue.h:78

◆ offer() [2/2]

template<typename E>
boost::future< bool > hazelcast::client::iqueue::offer ( const E & element,
std::chrono::milliseconds timeout )
inline

Inserts the specified element into this queue.

If queue is full waits for space to became available for specified time.

Parameters
elementto add
timeouthow long to wait before giving up
Returns
true if successful, or false if the specified waiting time elapses before space is available

Definition at line 103 of file iqueue.h.

105 {
106 return proxy::IQueueImpl::offer(to_data(element), timeout);
107 }

◆ peek()

template<typename E>
boost::future< boost::optional< E > > hazelcast::client::iqueue::peek ( )
inline

Returns immediately without waiting.

Returns
head of queue without removing it. If not available returns empty constructed shared_ptr.

Definition at line 200 of file iqueue.h.

201 {
202 return to_object<E>(proxy::IQueueImpl::peek_data());
203 }

◆ poll() [1/2]

template<typename E>
boost::future< boost::optional< E > > hazelcast::client::iqueue::poll ( )
inline

Returns immediately without waiting.

Returns
removes head of the queue and returns it to user . If not available returns empty constructed shared_ptr.

Definition at line 188 of file iqueue.h.

189 {
190 return poll<E>(std::chrono::milliseconds(0));
191 }
boost::future< boost::optional< E > > poll()
Returns immediately without waiting.
Definition iqueue.h:188

◆ poll() [2/2]

template<typename E>
boost::future< boost::optional< E > > hazelcast::client::iqueue::poll ( std::chrono::milliseconds timeout)
inline
Parameters
timeouttime to wait if item is not available.
Returns
the head of the queue. If queue is empty waits for specified time.

Definition at line 127 of file iqueue.h.

128 {
129 return to_object<E>(proxy::IQueueImpl::poll_data(timeout));
130 }

◆ put()

template<typename E>
boost::future< void > hazelcast::client::iqueue::put ( const E & element)
inline

Puts the element into queue.

If queue is full waits for space to became available.

Definition at line 88 of file iqueue.h.

89 {
90 return proxy::IQueueImpl::put(to_data(element));
91 }

◆ remove()

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

Definition at line 138 of file iqueue.h.

139 {
140 return proxy::IQueueImpl::remove(to_data(element));
141 }

◆ remove_all()

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

Definition at line 244 of file iqueue.h.

245 {
246 return proxy::IQueueImpl::remove_all_data(to_data_collection(elements));
247 }

◆ retain_all()

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

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

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

Definition at line 257 of file iqueue.h.

258 {
259 return proxy::IQueueImpl::retain_all_data(to_data_collection(elements));
260 }

◆ take()

template<typename E>
boost::future< boost::optional< E > > hazelcast::client::iqueue::take ( )
inline
Returns
the head of the queue. If queue is empty waits for an item to be added.

Definition at line 115 of file iqueue.h.

116 {
117 return to_object<E>(proxy::IQueueImpl::take_data());
118 }

◆ to_array()

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

Definition at line 210 of file iqueue.h.

211 {
212 return to_object_vector<E>(proxy::IQueueImpl::to_array_data());
213 }

◆ spi::ProxyManager

friend class spi::ProxyManager
friend

Definition at line 32 of file iqueue.h.

Member Data Documentation

◆ SERVICE_NAME

const char* hazelcast::client::iqueue::SERVICE_NAME = "hz:impl:queueService"
staticconstexpr

Definition at line 35 of file iqueue.h.


The documentation for this class was generated from the following file:
  • hazelcast/include/hazelcast/client/iqueue.h