16 #ifndef HAZELCAST_IQUEUE
17 #define HAZELCAST_IQUEUE
19 #include "hazelcast/client/proxy/IQueueImpl.h"
20 #include "hazelcast/client/ItemListener.h"
21 #include "hazelcast/client/impl/ItemEventHandler.h"
22 #include "hazelcast/client/protocol/codec/QueueAddListenerCodec.h"
29 class RawPointerQueue;
38 class IQueue :
public proxy::IQueueImpl {
58 spi::ClusterService& cs = context->getClusterService();
59 serialization::pimpl::SerializationService& ss = context->getSerializationService();
60 impl::ItemEventHandler<E, protocol::codec::QueueAddListenerCodec::AbstractEventHandler> *itemEventHandler =
61 new impl::ItemEventHandler<E, protocol::codec::QueueAddListenerCodec::AbstractEventHandler>(getName(), cs, ss, listener, includeValue);
62 return proxy::IQueueImpl::addItemListener(itemEventHandler, includeValue);
74 return proxy::IQueueImpl::removeItemListener(registrationId);
86 return offer(element, 0);
93 void put(
const E& element) {
94 proxy::IQueueImpl::put(toData(element));
106 bool offer(
const E& element,
long timeoutInMillis) {
107 return proxy::IQueueImpl::offer(toData(element), timeoutInMillis);
123 boost::shared_ptr<E>
poll(
long timeoutInMillis) {
124 return boost::shared_ptr<E>(boost::shared_ptr<E>(toObject<E>(
125 proxy::IQueueImpl::pollData(timeoutInMillis))));
133 return proxy::IQueueImpl::remainingCapacity();
141 bool remove(
const E& element) {
142 return proxy::IQueueImpl::remove(toData(element));
151 return proxy::IQueueImpl::contains(toData(element));
171 size_t drainTo(std::vector<E>& elements,
size_t maxElements) {
172 std::vector<serialization::pimpl::Data> coll = proxy::IQueueImpl::drainToData(maxElements);
173 for (std::vector<serialization::pimpl::Data>::const_iterator it = coll.begin(); it != coll.end(); ++it) {
174 std::auto_ptr<E> e = context->getSerializationService().template toObject<E>(*it);
175 elements.push_back(*e);
195 return boost::shared_ptr<E>(toObject<E>(proxy::IQueueImpl::peekData()));
203 return proxy::IQueueImpl::size();
219 return toObjectCollection<E>(proxy::IQueueImpl::toArrayData());
229 std::vector<serialization::pimpl::Data> list = toDataCollection(elements);
230 return proxy::IQueueImpl::containsAll(list);
239 bool addAll(
const std::vector<E>& elements) {
240 std::vector<serialization::pimpl::Data> dataList = toDataCollection(elements);
241 return proxy::IQueueImpl::addAll(dataList);
251 std::vector<serialization::pimpl::Data> dataList = toDataCollection(elements);
252 return proxy::IQueueImpl::removeAll(dataList);
263 std::vector<serialization::pimpl::Data> dataList = toDataCollection(elements);
264 return proxy::IQueueImpl::retainAll(dataList);
271 proxy::IQueueImpl::clear();
274 IQueue(
const std::string& instanceName, spi::ClientContext *context)
275 : proxy::IQueueImpl(instanceName, context) {
void clear()
Removes all elements from queue.
Definition: IQueue.h:270
bool offer(const E &element, long timeoutInMillis)
Inserts the specified element into this queue.
Definition: IQueue.h:106
Concurrent, blocking, distributed, observable, client queue.
Definition: IQueue.h:38
bool offer(const E &element)
Inserts the specified element into this queue.
Definition: IQueue.h:85
std::vector< E > toArray()
Definition: IQueue.h:218
Concurrent, blocking, distributed, observable, client queue.
Definition: RawPointerQueue.h:33
size_t drainTo(std::vector< E > &elements, size_t maxElements)
Note that elements will be pushed_back to vector.
Definition: IQueue.h:171
bool contains(const E &element)
Definition: IQueue.h:150
bool removeAll(const std::vector< E > &elements)
Definition: IQueue.h:250
size_t drainTo(std::vector< E > &elements)
Note that elements will be pushed_back to vector.
Definition: IQueue.h:160
int remainingCapacity()
Definition: IQueue.h:132
bool removeItemListener(const std::string ®istrationId)
Removes the specified item listener.
Definition: IQueue.h:73
std::string addItemListener(ItemListener< E > &listener, bool includeValue)
Adds an item listener for this collection.
Definition: IQueue.h:57
boost::shared_ptr< E > poll(long timeoutInMillis)
Definition: IQueue.h:123
int size()
Definition: IQueue.h:202
void put(const E &element)
Puts the element into queue.
Definition: IQueue.h:93
bool isEmpty()
Definition: IQueue.h:210
bool retainAll(const std::vector< E > &elements)
Removes the elements from this queue that are not available in given "elements" vector.
Definition: IQueue.h:262
boost::shared_ptr< E > peek()
Returns immediately without waiting.
Definition: IQueue.h:194
Item listener for IQueue, ISet and IList.
Definition: ItemListener.h:40
bool containsAll(const std::vector< E > &elements)
Definition: IQueue.h:228
bool addAll(const std::vector< E > &elements)
Definition: IQueue.h:239
boost::shared_ptr< E > poll()
Returns immediately without waiting.
Definition: IQueue.h:185
boost::shared_ptr< E > take()
Definition: IQueue.h:114
Hazelcast Client enables you to do all Hazelcast operations without being a member of the cluster...
Definition: HazelcastClient.h:458