Apache Ignite C++
cache.h
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
23 #ifndef _IGNITE_CACHE_CACHE
24 #define _IGNITE_CACHE_CACHE
25 
26 #include <map>
27 #include <set>
28 
29 #include <ignite/common/common.h>
30 #include <ignite/common/concurrent.h>
31 #include <ignite/ignite_error.h>
32 
42 #include <ignite/impl/cache/cache_impl.h>
43 #include <ignite/impl/cache/cache_entry_processor_holder.h>
44 #include <ignite/impl/operations.h>
45 #include <ignite/impl/module_manager.h>
46 #include <ignite/ignite_error.h>
47 
48 namespace ignite
49 {
50  namespace cache
51  {
67  template<typename K, typename V>
68  class IGNITE_IMPORT_EXPORT Cache
69  {
70  public:
78  Cache(impl::cache::CacheImpl* impl) :
79  impl(impl)
80  {
81  // No-op.
82  }
83 
91  const char* GetName() const
92  {
93  return impl.Get()->GetName();
94  }
95 
104  bool IsEmpty()
105  {
106  IgniteError err;
107 
108  bool res = IsEmpty(err);
109 
111 
112  return res;
113  }
114 
124  bool IsEmpty(IgniteError& err)
125  {
126  return Size(err) == 0;
127  }
128 
137  bool ContainsKey(const K& key)
138  {
139  IgniteError err;
140 
141  bool res = ContainsKey(key, err);
142 
144 
145  return res;
146  }
147 
157  bool ContainsKey(const K& key, IgniteError& err)
158  {
159  impl::In1Operation<K> op(key);
160 
161  return impl.Get()->ContainsKey(op, err);
162  }
163 
172  bool ContainsKeys(const std::set<K>& keys)
173  {
174  IgniteError err;
175 
176  bool res = ContainsKeys(keys, err);
177 
179 
180  return res;
181  }
182 
192  template<typename InputIter>
193  bool ContainsKeys(InputIter begin, InputIter end)
194  {
195  IgniteError err;
196 
197  impl::InIterOperation<K, V, InputIter> op(begin, end);
198 
199  bool res = impl.Get()->ContainsKeys(op, err);
200 
202 
203  return res;
204  }
205 
215  bool ContainsKeys(const std::set<K>& keys, IgniteError& err)
216  {
217  impl::InSetOperation<K> op(keys);
218 
219  return impl.Get()->ContainsKeys(op, err);
220  }
221 
235  V LocalPeek(const K& key, int32_t peekModes)
236  {
237  IgniteError err;
238 
239  V res = LocalPeek(key, peekModes, err);
240 
242 
243  return res;
244  }
245 
260  V LocalPeek(const K& key, int32_t peekModes, IgniteError& err)
261  {
262  V val;
263 
264  impl::InCacheLocalPeekOperation<K> inOp(key, peekModes);
265  impl::Out1Operation<V> outOp(val);
266 
267  impl.Get()->LocalPeek(inOp, outOp, err);
268 
269  return val;
270  }
271 
284  V Get(const K& key)
285  {
286  IgniteError err;
287 
288  V res = Get(key, err);
289 
291 
292  return res;
293  }
294 
308  V Get(const K& key, IgniteError& err)
309  {
310  V val;
311  impl::In1Operation<K> inOp(key);
312  impl::Out1Operation<V> outOp(val);
313 
314  impl.Get()->Get(inOp, outOp, err);
315 
316  return val;
317  }
318 
331  std::map<K, V> GetAll(const std::set<K>& keys)
332  {
333  IgniteError err;
334 
335  std::map<K, V> res = GetAll(keys, err);
336 
338 
339  return res;
340  }
341 
355  std::map<K, V> GetAll(const std::set<K>& keys, IgniteError& err)
356  {
357  std::map<K, V> res;
358 
359  impl::InSetOperation<K> inOp(keys);
360  impl::OutMapOperation<K, V> outOp(res);
361 
362  impl.Get()->GetAll(inOp, outOp, err);
363 
364  return res;
365  }
366 
380  template<typename InIter, typename OutIter>
381  void GetAll(InIter begin, InIter end, OutIter dst)
382  {
383  IgniteError err;
384 
385  impl::InIterOperation<K, V, InIter> inOp(begin, end);
386  impl::OutMapIterOperation<K, V, OutIter> outOp(dst);
387 
388  impl.Get()->GetAll(inOp, outOp, err);
389 
391  }
392 
403  void Put(const K& key, const V& val)
404  {
405  IgniteError err;
406 
407  Put(key, val, err);
408 
410  }
411 
423  void Put(const K& key, const V& val, IgniteError& err)
424  {
425  impl::In2Operation<K, V> op(key, val);
426 
427  impl.Get()->Put(op, err);
428  }
429 
439  void PutAll(const std::map<K, V>& vals)
440  {
441  IgniteError err;
442 
443  PutAll(vals, err);
444 
446  }
447 
458  void PutAll(const std::map<K, V>& vals, IgniteError& err)
459  {
460  impl::InMapOperation<K, V> op(vals);
461 
462  impl.Get()->PutAll(op, err);
463  }
464 
478  template<typename Iter>
479  void PutAll(Iter begin, Iter end)
480  {
481  IgniteError err;
482 
483  impl::InIterOperation<K, V, Iter> op(begin, end);
484 
485  impl.Get()->PutAll(op, err);
486 
488  }
489 
501  V GetAndPut(const K& key, const V& val)
502  {
503  IgniteError err;
504 
505  V res = GetAndPut(key, val, err);
506 
508 
509  return res;
510  }
511 
524  V GetAndPut(const K& key, const V& val, IgniteError& err)
525  {
526  V oldVal;
527 
528  impl::In2Operation<K, V> inOp(key, val);
529  impl::Out1Operation<V> outOp(oldVal);
530 
531  impl.Get()->GetAndPut(inOp, outOp, err);
532 
533  return oldVal;
534  }
535 
547  V GetAndReplace(const K& key, const V& val)
548  {
549  IgniteError err;
550 
551  V res = GetAndReplace(key, val, err);
552 
554 
555  return res;
556  }
557 
570  V GetAndReplace(const K& key, const V& val, IgniteError& err)
571  {
572  V oldVal;
573 
574  impl::In2Operation<K, V> inOp(key, val);
575  impl::Out1Operation<V> outOp(oldVal);
576 
577  impl.Get()->GetAndReplace(inOp, outOp, err);
578 
579  return oldVal;
580  }
581 
590  V GetAndRemove(const K& key)
591  {
592  IgniteError err;
593 
594  V res = GetAndRemove(key, err);
595 
597 
598  return res;
599  }
600 
610  V GetAndRemove(const K& key, IgniteError& err)
611  {
612  V oldVal;
613 
614  impl::In1Operation<K> inOp(key);
615  impl::Out1Operation<V> outOp(oldVal);
616 
617  impl.Get()->GetAndRemove(inOp, outOp, err);
618 
619  return oldVal;
620  }
621 
632  bool PutIfAbsent(const K& key, const V& val)
633  {
634  IgniteError err;
635 
636  bool res = PutIfAbsent(key, val, err);
637 
639 
640  return res;
641  }
642 
654  bool PutIfAbsent(const K& key, const V& val, IgniteError& err)
655  {
656  impl::In2Operation<K, V> op(key, val);
657 
658  return impl.Get()->PutIfAbsent(op, err);
659  }
660 
679  V GetAndPutIfAbsent(const K& key, const V& val)
680  {
681  IgniteError err;
682 
683  V res = GetAndPutIfAbsent(key, val, err);
684 
686 
687  return res;
688  }
689 
709  V GetAndPutIfAbsent(const K& key, const V& val, IgniteError& err)
710  {
711  V oldVal;
712 
713  impl::In2Operation<K, V> inOp(key, val);
714  impl::Out1Operation<V> outOp(oldVal);
715 
716  impl.Get()->GetAndPutIfAbsent(inOp, outOp, err);
717 
718  return oldVal;
719  }
720 
736  bool Replace(const K& key, const V& val)
737  {
738  IgniteError err;
739 
740  bool res = Replace(key, val, err);
741 
743 
744  return res;
745  }
746 
763  bool Replace(const K& key, const V& val, IgniteError& err)
764  {
765  impl::In2Operation<K, V> op(key, val);
766 
767  return impl.Get()->Replace(op, err);
768  }
769 
782  bool Replace(const K& key, const V& oldVal, const V& newVal)
783  {
784  IgniteError err;
785 
786  bool res = Replace(key, oldVal, newVal, err);
787 
789 
790  return res;
791  }
792 
806  bool Replace(const K& key, const V& oldVal, const V& newVal, IgniteError& err)
807  {
808  impl::In3Operation<K, V, V> op(key, oldVal, newVal);
809 
810  return impl.Get()->ReplaceIfEqual(op, err);
811  }
812 
823  void LocalEvict(const std::set<K>& keys)
824  {
825  IgniteError err;
826 
827  LocalEvict(keys, err);
828 
830  }
831 
843  void LocalEvict(const std::set<K>& keys, IgniteError& err)
844  {
845  impl::InSetOperation<K> op(keys);
846 
847  impl.Get()->LocalEvict(op, err);
848  }
849 
861  template<typename Iter>
862  void LocalEvict(Iter begin, Iter end)
863  {
864  IgniteError err;
865 
866  impl::InIterOperation<K, V, Iter> op(begin, end);
867 
868  impl.Get()->LocalEvict(op, err);
869 
871  }
872 
878  void Clear()
879  {
880  IgniteError err;
881 
882  Clear(err);
883 
885  }
886 
894  void Clear(IgniteError& err)
895  {
896  impl.Get()->Clear(err);
897  }
898 
907  void Clear(const K& key)
908  {
909  IgniteError err;
910 
911  Clear(key, err);
912 
914  }
915 
925  void Clear(const K& key, IgniteError& err)
926  {
927  impl::In1Operation<K> op(key);
928 
929  impl.Get()->Clear(op, err);
930  }
931 
940  void ClearAll(const std::set<K>& keys)
941  {
942  IgniteError err;
943 
944  ClearAll(keys, err);
945 
947  }
948 
958  void ClearAll(const std::set<K>& keys, IgniteError& err)
959  {
960  impl::InSetOperation<K> op(keys);
961 
962  impl.Get()->ClearAll(op, err);
963  }
964 
974  template<typename Iter>
975  void ClearAll(Iter begin, Iter end)
976  {
977  IgniteError err;
978 
979  impl::InIterOperation<K, V, Iter> op(begin, end);
980 
981  impl.Get()->ClearAll(op, err);
982 
984  }
985 
997  void LocalClear(const K& key)
998  {
999  IgniteError err;
1000 
1001  LocalClear(key, err);
1002 
1004  }
1005 
1018  void LocalClear(const K& key, IgniteError& err)
1019  {
1020  impl::In1Operation<K> op(key);
1021 
1022  impl.Get()->LocalClear(op, err);
1023  }
1024 
1036  void LocalClearAll(const std::set<K>& keys)
1037  {
1038  IgniteError err;
1039 
1040  LocalClearAll(keys, err);
1041 
1043  }
1044 
1057  void LocalClearAll(const std::set<K>& keys, IgniteError& err)
1058  {
1059  impl::InSetOperation<K> op(keys);
1060 
1061  impl.Get()->LocalClearAll(op, err);
1062  }
1063 
1076  template<typename Iter>
1077  void LocalClearAll(Iter begin, Iter end)
1078  {
1079  IgniteError err;
1080 
1081  impl::InIterOperation<K, V, Iter> op(begin, end);
1082 
1083  impl.Get()->LocalClearAll(op, err);
1084 
1086  }
1087 
1103  bool Remove(const K& key)
1104  {
1105  IgniteError err;
1106 
1107  bool res = Remove(key, err);
1108 
1110 
1111  return res;
1112  }
1113 
1130  bool Remove(const K& key, IgniteError& err)
1131  {
1132  impl::In1Operation<K> op(key);
1133 
1134  return impl.Get()->Remove(op, err);
1135  }
1136 
1148  bool Remove(const K& key, const V& val)
1149  {
1150  IgniteError err;
1151 
1152  bool res = Remove(key, val, err);
1153 
1155 
1156  return res;
1157  }
1158 
1171  bool Remove(const K& key, const V& val, IgniteError& err)
1172  {
1173  impl::In2Operation<K, V> op(key, val);
1174 
1175  return impl.Get()->RemoveIfEqual(op, err);
1176  }
1177 
1187  void RemoveAll(const std::set<K>& keys)
1188  {
1189  IgniteError err;
1190 
1191  RemoveAll(keys, err);
1192 
1194  }
1195 
1206  void RemoveAll(const std::set<K>& keys, IgniteError& err)
1207  {
1208  impl::InSetOperation<K> op(keys);
1209 
1210  impl.Get()->RemoveAll(op, err);
1211  }
1212 
1226  template<typename Iter>
1227  void RemoveAll(Iter begin, Iter end)
1228  {
1229  IgniteError err;
1230 
1231  impl::InIterOperation<K, V, Iter> op(begin, end);
1232 
1233  impl.Get()->RemoveAll(op, err);
1234 
1236  }
1237 
1246  void RemoveAll()
1247  {
1248  IgniteError err;
1249 
1250  RemoveAll(err);
1251 
1253  }
1254 
1265  {
1266  return impl.Get()->RemoveAll(err);
1267  }
1268 
1276  int32_t LocalSize()
1277  {
1278  return LocalSize(CachePeekMode::ALL);
1279  }
1280 
1289  int32_t LocalSize(IgniteError& err)
1290  {
1291  return LocalSize(CachePeekMode::ALL, err);
1292  }
1293 
1302  int32_t LocalSize(int32_t peekModes)
1303  {
1304  IgniteError err;
1305 
1306  int32_t res = LocalSize(peekModes, err);
1307 
1309 
1310  return res;
1311  }
1312 
1322  int32_t LocalSize(int32_t peekModes, IgniteError& err)
1323  {
1324  return impl.Get()->Size(peekModes, true, err);
1325  }
1326 
1335  int32_t Size()
1336  {
1337  return Size(ignite::cache::CachePeekMode::ALL);
1338  }
1339 
1349  int32_t Size(IgniteError& err)
1350  {
1351  return Size(ignite::cache::CachePeekMode::ALL, err);
1352  }
1353 
1363  int32_t Size(int32_t peekModes)
1364  {
1365  IgniteError err;
1366 
1367  int32_t res = Size(peekModes, err);
1368 
1370 
1371  return res;
1372  }
1373 
1384  int32_t Size(int32_t peekModes, IgniteError& err)
1385  {
1386  return impl.Get()->Size(peekModes, false, err);
1387  }
1388 
1399  {
1400  IgniteError err;
1401 
1402  query::QueryCursor<K, V> res = Query(qry, err);
1403 
1405 
1406  return res;
1407  }
1408 
1419  {
1420  impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QuerySql(qry, err);
1421 
1422  return query::QueryCursor<K, V>(cursorImpl);
1423  }
1424 
1434  {
1435  IgniteError err;
1436 
1437  query::QueryCursor<K, V> res = Query(qry, err);
1438 
1440 
1441  return res;
1442  }
1443 
1454  {
1455  impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QueryText(qry, err);
1456 
1457  return query::QueryCursor<K, V>(cursorImpl);
1458  }
1459 
1469  {
1470  IgniteError err;
1471 
1472  query::QueryCursor<K, V> res = Query(qry, err);
1473 
1475 
1476  return res;
1477  }
1478 
1489  {
1490  impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QueryScan(qry, err);
1491 
1492  return query::QueryCursor<K, V>(cursorImpl);
1493  }
1494 
1504  {
1505  IgniteError err;
1506 
1507  query::QueryFieldsCursor res = Query(qry, err);
1508 
1510 
1511  return res;
1512  }
1513 
1524  {
1525  impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QuerySqlFields(qry, err);
1526 
1527  return query::QueryFieldsCursor(cursorImpl);
1528  }
1529 
1571  template<typename R, typename P, typename A>
1572  R Invoke(const K& key, const P& processor, const A& arg)
1573  {
1574  IgniteError err;
1575 
1576  R res = Invoke<R>(key, processor, arg, err);
1577 
1579 
1580  return res;
1581  }
1582 
1626  template<typename R, typename P, typename A>
1627  R Invoke(const K& key, const P& processor, const A& arg, IgniteError& err)
1628  {
1629  typedef impl::cache::CacheEntryProcessorHolder<P, A> ProcessorHolder;
1630 
1631  R res;
1632  ProcessorHolder procHolder(processor, arg);
1633 
1634  impl::InCacheInvokeOperation<K, ProcessorHolder> inOp(key, procHolder);
1635  impl::Out1Operation<R> outOp(res);
1636 
1637  impl.Get()->Invoke(inOp, outOp, err);
1638 
1639  return res;
1640  }
1641 
1668  template<typename R, typename A>
1669  R InvokeJava(const K& key, const std::string& processorName, const A& arg)
1670  {
1671  IgniteError err;
1672 
1673  R res = InvokeJava<R>(key, processorName, arg, err);
1674 
1676 
1677  return res;
1678  }
1679 
1706  template<typename R, typename A>
1707  R InvokeJava(const K& key, const std::string& processorName, const A& arg, IgniteError& err)
1708  {
1709  R res;
1710 
1711  impl::In3Operation<std::string, K, A> inOp(processorName, key, arg);
1712  impl::Out1Operation<R> outOp(res);
1713 
1714  impl.Get()->InvokeJava(inOp, outOp, err);
1715 
1716  return res;
1717  }
1718 
1727  {
1728  IgniteError err;
1729 
1730  query::continuous::ContinuousQueryHandle<K, V> res = QueryContinuous(qry, err);
1731 
1733 
1734  return res;
1735  }
1736 
1746  {
1747  using namespace impl::cache::query::continuous;
1748  using namespace common::concurrent;
1749 
1750  const SharedPointer<ContinuousQueryImpl<K, V> >& qryImpl = qry.impl;
1751 
1752  if (!qryImpl.IsValid() || !qryImpl.Get()->HasListener())
1753  {
1755  "Event listener is not set for ContinuousQuery instance");
1756 
1758  }
1759 
1760  ContinuousQueryHandleImpl* cqImpl = impl.Get()->QueryContinuous(qryImpl, err);
1761 
1763  }
1764 
1772  template<typename Q>
1775  const Q& initialQry)
1776  {
1777  IgniteError err;
1778 
1779  query::continuous::ContinuousQueryHandle<K, V> res = QueryContinuous(qry, initialQry, err);
1780 
1782 
1783  return res;
1784  }
1785 
1794  template<typename Q>
1797  const Q& initialQry, IgniteError& err)
1798  {
1799  using namespace impl::cache::query::continuous;
1800  using namespace common::concurrent;
1801 
1802  const SharedPointer<ContinuousQueryImpl<K, V> >& qryImpl = qry.impl;
1803 
1804  if (!qryImpl.IsValid() || !qryImpl.Get()->HasListener())
1805  {
1807  "Event listener is not set for ContinuousQuery instance");
1808 
1810  }
1811 
1812  ContinuousQueryHandleImpl* cqImpl = impl.Get()->QueryContinuous(qryImpl, initialQry, err);
1813 
1815  }
1816 
1828  bool IsValid() const
1829  {
1830  return impl.IsValid();
1831  }
1832 
1836  void LoadCache()
1837  {
1838  IgniteError err;
1839 
1840  impl.Get()->LoadCache(err);
1841 
1843  }
1844 
1854  {
1855  IgniteError err;
1856 
1857  impl.Get()->LocalLoadCache(err);
1858 
1860  }
1861 
1862  private:
1864  common::concurrent::SharedPointer<impl::cache::CacheImpl> impl;
1865  };
1866  }
1867 }
1868 
1869 #endif //_IGNITE_CACHE_CACHE
ignite::cache::Cache::LocalEvict
void LocalEvict(const std::set< K > &keys)
Attempts to evict all entries associated with keys.
Definition: cache.h:823
ignite::cache::Cache::GetAndRemove
V GetAndRemove(const K &key)
Atomically removes the entry for a key only if currently mapped to some value.
Definition: cache.h:590
ignite
Apache Ignite API.
Definition: cache.h:48
ignite::cache::Cache::GetAndPutIfAbsent
V GetAndPutIfAbsent(const K &key, const V &val, IgniteError &err)
Stores given key-value pair in cache only if cache had no previous mapping for it.
Definition: cache.h:709
ignite::cache::Cache::Replace
bool Replace(const K &key, const V &oldVal, const V &newVal)
Stores given key-value pair in cache only if the previous value is equal to the old value passed as a...
Definition: cache.h:782
cache_peek_mode.h
ignite::cache::Cache::PutIfAbsent
bool PutIfAbsent(const K &key, const V &val)
Atomically associates the specified key with the given value if it is not already associated with a v...
Definition: cache.h:632
ignite::cache::Cache::Clear
void Clear(IgniteError &err)
Clear cache.
Definition: cache.h:894
continuous_query_handle.h
ignite::cache::Cache::ContainsKeys
bool ContainsKeys(const std::set< K > &keys, IgniteError &err)
Check if cache contains mapping for these keys.
Definition: cache.h:215
ignite::cache::Cache::PutAll
void PutAll(Iter begin, Iter end)
Stores given key-value pairs in cache.
Definition: cache.h:479
ignite::cache::Cache::Remove
bool Remove(const K &key)
Removes given key mapping from cache.
Definition: cache.h:1103
ignite::cache::Cache::PutAll
void PutAll(const std::map< K, V > &vals, IgniteError &err)
Stores given key-value pairs in cache.
Definition: cache.h:458
ignite::cache::Cache::Replace
bool Replace(const K &key, const V &val, IgniteError &err)
Stores given key-value pair in cache only if there is a previous mapping for it.
Definition: cache.h:763
ignite::cache::Cache::LocalPeek
V LocalPeek(const K &key, int32_t peekModes, IgniteError &err)
Peeks at cached value using optional set of peek modes.
Definition: cache.h:260
ignite::cache::Cache::QueryContinuous
query::continuous::ContinuousQueryHandle< K, V > QueryContinuous(const query::continuous::ContinuousQuery< K, V > &qry)
Start continuous query execution.
Definition: cache.h:1725
ignite::cache::Cache::Remove
bool Remove(const K &key, IgniteError &err)
Removes given key mapping from cache.
Definition: cache.h:1130
ignite::cache::Cache::LoadCache
void LoadCache()
Executes LocalLoadCache on all cache nodes.
Definition: cache.h:1836
ignite::cache::Cache::IsValid
bool IsValid() const
Check if the instance is valid.
Definition: cache.h:1828
ignite::cache::Cache::GetAll
std::map< K, V > GetAll(const std::set< K > &keys, IgniteError &err)
Retrieves values mapped to the specified keys from cache.
Definition: cache.h:355
ignite::cache::Cache
Main entry point for all Data Grid APIs.
Definition: cache.h:68
ignite::cache::Cache::GetAndPutIfAbsent
V GetAndPutIfAbsent(const K &key, const V &val)
Stores given key-value pair in cache only if cache had no previous mapping for it.
Definition: cache.h:679
ignite::cache::query::ScanQuery
Scan query.
Definition: core/include/ignite/cache/query/query_scan.h:40
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::TextQuery &qry)
Perform text query.
Definition: cache.h:1433
ignite::cache::Cache::ClearAll
void ClearAll(const std::set< K > &keys)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:940
ignite::cache::Cache::LocalLoadCache
void LocalLoadCache()
Loads state from the underlying persistent storage.
Definition: cache.h:1853
ignite::cache::Cache::Size
int32_t Size(int32_t peekModes)
Gets the number of all entries cached across all nodes.
Definition: cache.h:1363
ignite::cache::Cache::GetAndRemove
V GetAndRemove(const K &key, IgniteError &err)
Atomically removes the entry for a key only if currently mapped to some value.
Definition: cache.h:610
ignite::cache::Cache::GetAndReplace
V GetAndReplace(const K &key, const V &val, IgniteError &err)
Atomically replaces the value for a given key if and only if there is a value currently mapped by the...
Definition: cache.h:570
ignite::cache::Cache::GetAndPut
V GetAndPut(const K &key, const V &val, IgniteError &err)
Associates the specified value with the specified key in this cache, returning an existing value if o...
Definition: cache.h:524
ignite::cache::Cache::Size
int32_t Size(IgniteError &err)
Gets the number of all entries cached across all nodes.
Definition: cache.h:1349
ignite::cache::Cache::LocalSize
int32_t LocalSize(IgniteError &err)
Gets the number of all entries cached on this node.
Definition: cache.h:1289
ignite::cache::Cache::InvokeJava
R InvokeJava(const K &key, const std::string &processorName, const A &arg, IgniteError &err)
Invokes an instance of Java class CacheEntryProcessor against the entry specified by the provided key...
Definition: cache.h:1707
ignite::cache::Cache::PutAll
void PutAll(const std::map< K, V > &vals)
Stores given key-value pairs in cache.
Definition: cache.h:439
ignite::cache::query::QueryCursor
Query cursor class template.
Definition: core/include/ignite/cache/query/query_cursor.h:54
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::TextQuery &qry, IgniteError &err)
Perform text query.
Definition: cache.h:1453
query_sql.h
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::ScanQuery &qry, IgniteError &err)
Perform scan query.
Definition: cache.h:1488
ignite::cache::Cache::Query
query::QueryFieldsCursor Query(const query::SqlFieldsQuery &qry, IgniteError &err)
Perform sql fields query.
Definition: cache.h:1523
ignite::cache::Cache::GetAll
void GetAll(InIter begin, InIter end, OutIter dst)
Retrieves values mapped to the specified keys from cache.
Definition: cache.h:381
ignite::cache::Cache::PutIfAbsent
bool PutIfAbsent(const K &key, const V &val, IgniteError &err)
Atomically associates the specified key with the given value if it is not already associated with a v...
Definition: cache.h:654
ignite::cache::Cache::Get
V Get(const K &key)
Retrieves value mapped to the specified key from cache.
Definition: cache.h:284
ignite::cache::Cache::Put
void Put(const K &key, const V &val)
Associates the specified value with the specified key in the cache.
Definition: cache.h:403
ignite::cache::Cache::GetName
const char * GetName() const
Get name of this cache (null for default cache).
Definition: cache.h:91
ignite::cache::Cache::Size
int32_t Size()
Gets the number of all entries cached across all nodes.
Definition: cache.h:1335
ignite::cache::Cache::Query
query::QueryFieldsCursor Query(const query::SqlFieldsQuery &qry)
Perform sql fields query.
Definition: cache.h:1503
ignite::cache::Cache::LocalEvict
void LocalEvict(const std::set< K > &keys, IgniteError &err)
Attempts to evict all entries associated with keys.
Definition: cache.h:843
ignite::cache::Cache::Put
void Put(const K &key, const V &val, IgniteError &err)
Associates the specified value with the specified key in the cache.
Definition: cache.h:423
query_scan.h
ignite::cache::Cache::LocalEvict
void LocalEvict(Iter begin, Iter end)
Attempts to evict all entries associated with keys.
Definition: cache.h:862
ignite::cache::query::QueryFieldsCursor
Query fields cursor.
Definition: core/include/ignite/cache/query/query_fields_cursor.h:50
ignite::cache::Cache::GetAndReplace
V GetAndReplace(const K &key, const V &val)
Atomically replaces the value for a given key if and only if there is a value currently mapped by the...
Definition: cache.h:547
ignite::cache::Cache::LocalClearAll
void LocalClearAll(Iter begin, Iter end)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:1077
ignite::cache::Cache::QueryContinuous
query::continuous::ContinuousQueryHandle< K, V > QueryContinuous(const query::continuous::ContinuousQuery< K, V > &qry, const Q &initialQry, IgniteError &err)
Start continuous query execution with the initial query.
Definition: cache.h:1795
ignite::cache::Cache::Remove
bool Remove(const K &key, const V &val, IgniteError &err)
Removes given key mapping from cache if one exists and value is equal to the passed in value.
Definition: cache.h:1171
ignite::cache::Cache::GetAll
std::map< K, V > GetAll(const std::set< K > &keys)
Retrieves values mapped to the specified keys from cache.
Definition: cache.h:331
ignite::cache::Cache::ClearAll
void ClearAll(Iter begin, Iter end)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:975
ignite::cache::Cache::Cache
Cache(impl::cache::CacheImpl *impl)
Constructor.
Definition: cache.h:78
ignite::cache::Cache::RemoveAll
void RemoveAll()
Removes all mappings from cache.
Definition: cache.h:1246
ignite::cache::Cache::QueryContinuous
query::continuous::ContinuousQueryHandle< K, V > QueryContinuous(const query::continuous::ContinuousQuery< K, V > &qry, const Q &initialQry)
Start continuous query execution with the initial query.
Definition: cache.h:1773
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::SqlQuery &qry, IgniteError &err)
Perform SQL query.
Definition: cache.h:1418
ignite::IgniteError::IGNITE_ERR_GENERIC
static const int IGNITE_ERR_GENERIC
Generic Ignite error.
Definition: ignite_error.h:131
ignite::cache::Cache::Clear
void Clear()
Clear cache.
Definition: cache.h:878
ignite::cache::query::TextQuery
Text query.
Definition: query_text.h:40
ignite::cache::Cache::LocalClear
void LocalClear(const K &key, IgniteError &err)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:1018
ignite::cache::Cache::Invoke
R Invoke(const K &key, const P &processor, const A &arg)
Invokes an CacheEntryProcessor against the MutableCacheEntry specified by the provided key.
Definition: cache.h:1572
ignite::cache::Cache::LocalSize
int32_t LocalSize(int32_t peekModes)
Gets the number of all entries cached on this node.
Definition: cache.h:1302
ignite::cache::Cache::LocalClearAll
void LocalClearAll(const std::set< K > &keys)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:1036
query_cursor.h
ignite::cache::Cache::RemoveAll
void RemoveAll(const std::set< K > &keys)
Removes given key mappings from cache.
Definition: cache.h:1187
ignite::cache::query::continuous::ContinuousQuery
Continuous query.
Definition: continuous_query.h:59
ignite::cache::Cache::ContainsKey
bool ContainsKey(const K &key)
Check if cache contains mapping for this key.
Definition: cache.h:137
ignite::cache::Cache::ContainsKeys
bool ContainsKeys(const std::set< K > &keys)
Check if cache contains mapping for these keys.
Definition: cache.h:172
ignite::cache::Cache::RemoveAll
void RemoveAll(Iter begin, Iter end)
Removes given key mappings from cache.
Definition: cache.h:1227
ignite::cache::Cache::QueryContinuous
query::continuous::ContinuousQueryHandle< K, V > QueryContinuous(const query::continuous::ContinuousQuery< K, V > &qry, IgniteError &err)
Start continuous query execution.
Definition: cache.h:1744
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::SqlQuery &qry)
Perform SQL query.
Definition: cache.h:1398
ignite::cache::Cache::IsEmpty
bool IsEmpty()
Checks whether this cache contains no key-value mappings.
Definition: cache.h:104
ignite::cache::Cache::Clear
void Clear(const K &key, IgniteError &err)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:925
ignite::cache::Cache::IsEmpty
bool IsEmpty(IgniteError &err)
Checks whether this cache contains no key-value mappings.
Definition: cache.h:124
ignite::cache::Cache::Clear
void Clear(const K &key)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:907
query_sql_fields.h
ignite::cache::Cache::Remove
bool Remove(const K &key, const V &val)
Removes given key mapping from cache if one exists and value is equal to the passed in value.
Definition: cache.h:1148
ignite::cache::Cache::RemoveAll
void RemoveAll(IgniteError &err)
Removes all mappings from cache.
Definition: cache.h:1264
ignite::cache::Cache::InvokeJava
R InvokeJava(const K &key, const std::string &processorName, const A &arg)
Invokes an instance of Java class CacheEntryProcessor against the entry specified by the provided key...
Definition: cache.h:1669
ignite::IgniteError::ThrowIfNeeded
static void ThrowIfNeeded(const IgniteError &err)
Throw an error if code is not IGNITE_SUCCESS.
Definition: ignite_error.cpp:27
ignite::cache::Cache::LocalSize
int32_t LocalSize()
Gets the number of all entries cached on this node.
Definition: cache.h:1276
ignite::cache::Cache::Replace
bool Replace(const K &key, const V &val)
Stores given key-value pair in cache only if there is a previous mapping for it.
Definition: cache.h:736
ignite::cache::Cache::LocalSize
int32_t LocalSize(int32_t peekModes, IgniteError &err)
Gets the number of all entries cached on this node.
Definition: cache.h:1322
ignite::cache::query::SqlFieldsQuery
Sql fields query.
Definition: core/include/ignite/cache/query/query_sql_fields.h:42
ignite::cache::Cache::Query
query::QueryCursor< K, V > Query(const query::ScanQuery &qry)
Perform scan query.
Definition: cache.h:1468
ignite::cache::Cache::Size
int32_t Size(int32_t peekModes, IgniteError &err)
Gets the number of all entries cached across all nodes.
Definition: cache.h:1384
ignite::cache::Cache::Get
V Get(const K &key, IgniteError &err)
Retrieves value mapped to the specified key from cache.
Definition: cache.h:308
ignite_error.h
ignite::cache::Cache::ContainsKeys
bool ContainsKeys(InputIter begin, InputIter end)
Check if cache contains mapping for these keys.
Definition: cache.h:193
ignite::cache::Cache::LocalPeek
V LocalPeek(const K &key, int32_t peekModes)
Peeks at cached value using optional set of peek modes.
Definition: cache.h:235
ignite::IgniteError
Ignite error information.
Definition: ignite_error.h:94
ignite::cache::query::SqlQuery
Sql query.
Definition: query_sql.h:44
ignite::cache::Cache::Replace
bool Replace(const K &key, const V &oldVal, const V &newVal, IgniteError &err)
Stores given key-value pair in cache only if the previous value is equal to the old value passed as a...
Definition: cache.h:806
ignite::cache::Cache::ContainsKey
bool ContainsKey(const K &key, IgniteError &err)
Check if cache contains mapping for this key.
Definition: cache.h:157
ignite::cache::Cache::GetAndPut
V GetAndPut(const K &key, const V &val)
Associates the specified value with the specified key in this cache, returning an existing value if o...
Definition: cache.h:501
ignite::cache::Cache::LocalClear
void LocalClear(const K &key)
Clear entry from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:997
query_text.h
ignite::cache::Cache::LocalClearAll
void LocalClearAll(const std::set< K > &keys, IgniteError &err)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:1057
continuous_query.h
ignite::cache::Cache::RemoveAll
void RemoveAll(const std::set< K > &keys, IgniteError &err)
Removes given key mappings from cache.
Definition: cache.h:1206
ignite::cache::Cache::ClearAll
void ClearAll(const std::set< K > &keys, IgniteError &err)
Clear entries from the cache and swap storage, without notifying listeners or CacheWriters.
Definition: cache.h:958
ignite::cache::Cache::Invoke
R Invoke(const K &key, const P &processor, const A &arg, IgniteError &err)
Invokes an CacheEntryProcessor against the MutableCacheEntry specified by the provided key.
Definition: cache.h:1627
query_fields_cursor.h
ignite::cache::CachePeekMode::ALL
@ ALL
Peeks into all available cache storages.
Definition: core/include/ignite/cache/cache_peek_mode.h:40
ignite::cache::query::continuous::ContinuousQueryHandle
Continuous query handle.
Definition: core/include/ignite/cache/query/continuous/continuous_query_handle.h:40