http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/cache.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/cache.h b/modules/platform/src/main/cpp/core/include/ignite/cache/cache.h deleted file mode 100644 index dcc837b..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/cache.h +++ /dev/null @@ -1,1153 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE -#define _IGNITE_CACHE - -#include <map> -#include <set> - -#include <ignite/common/common.h> -#include <ignite/common/concurrent.h> - -#include "ignite/cache/cache_peek_mode.h" -#include "ignite/cache/query/query_cursor.h" -#include "ignite/cache/query/query_scan.h" -#include "ignite/cache/query/query_sql.h" -#include "ignite/cache/query/query_text.h" -#include "ignite/impl/cache/cache_impl.h" -#include "ignite/impl/operations.h" -#include "ignite/ignite_error.h" - -namespace ignite -{ - namespace cache - { - /** - * Main entry point for all Data Grid APIs. - */ - template<typename K, typename V> - class IGNITE_IMPORT_EXPORT Cache - { - public: - /** - * Constructor. - */ - Cache(impl::cache::CacheImpl* impl) : impl(ignite::common::concurrent::SharedPointer<impl::cache::CacheImpl>(impl)) - { - // No-op. - } - - /** - * Name of this cache (null for default cache). - */ - char* GetName() - { - return impl.Get()->GetName(); - } - - /** - * Checks whether this cache contains no key-value mappings. - * Semantically equals to Cache.Size(IGNITE_PEEK_MODE_PRIMARY) == 0. - * - * @return True if cache is empty. - */ - bool IsEmpty() - { - IgniteError err; - - bool res = IsEmpty(err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Checks whether this cache contains no key-value mappings. - * Semantically equals to Cache.Size(IGNITE_PEEK_MODE_PRIMARY) == 0. - * - * @param err Error. - * @return True if cache is empty. - */ - bool IsEmpty(IgniteError& err) - { - return impl.Get()->IsEmpty(&err); - } - - /** - * Check if cache contains mapping for this key. - * - * @param key Key. - * @return True if cache contains mapping for this key. - */ - bool ContainsKey(const K& key) - { - IgniteError err; - - bool res = ContainsKey(key, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Check if cache contains mapping for this key. - * - * @param key Key. - * @param err Error. - * @return True if cache contains mapping for this key. - */ - bool ContainsKey(const K& key, IgniteError& err) - { - impl::In1Operation<K> op(&key); - - return impl.Get()->ContainsKey(op, &err); - } - - /** - * Check if cache contains mapping for these keys. - * - * @param keys Keys. - * @return True if cache contains mapping for all these keys. - */ - bool ContainsKeys(const std::set<K>& keys) - { - IgniteError err; - - bool res = ContainsKeys(keys, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Check if cache contains mapping for these keys. - * - * @param keys Keys. - * @param err Error. - * @return True if cache contains mapping for all these keys. - */ - bool ContainsKeys(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> op(&keys); - - return impl.Get()->ContainsKeys(op, &err); - } - - /** - * Peeks at cached value using optional set of peek modes. This method will sequentially - * iterate over given peek modes, and try to peek at value using each peek mode. Once a - * non-null value is found, it will be immediately returned. - * This method does not participate in any transactions, however, it may peek at transactional - * value depending on the peek modes used. - * - * @param key Key. - * @param peekModes Peek modes. - * @return Value. - */ - V LocalPeek(const K& key, int32_t peekModes) - { - IgniteError err; - - V res = LocalPeek(key, peekModes, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Peeks at cached value using optional set of peek modes. This method will sequentially - * iterate over given peek modes, and try to peek at value using each peek mode. Once a - * non-null value is found, it will be immediately returned. - * This method does not participate in any transactions, however, it may peek at transactional - * value depending on the peek modes used. - * - * @param key Key. - * @param peekModes Peek modes. - * @param err Error. - * @return Value. - */ - V LocalPeek(const K& key, int32_t peekModes, IgniteError& err) - { - impl::InCacheLocalPeekOperation<K> inOp(&key, peekModes); - impl::Out1Operation<V> outOp; - - impl.Get()->LocalPeek(inOp, outOp, peekModes, &err); - - return outOp.GetResult(); - } - - /** - * Retrieves value mapped to the specified key from cache. - * If the value is not present in cache, then it will be looked up from swap storage. If - * it's not present in swap, or if swap is disabled, and if read-through is allowed, value - * will be loaded from persistent store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key. - * @return Value. - */ - V Get(const K& key) - { - IgniteError err; - - V res = Get(key, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Retrieves value mapped to the specified key from cache. - * If the value is not present in cache, then it will be looked up from swap storage. If - * it's not present in swap, or if swap is disabled, and if read-through is allowed, value - * will be loaded from persistent store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key. - * @param err Error. - * @return Value. - */ - V Get(const K& key, IgniteError& err) - { - impl::In1Operation<K> inOp(&key); - impl::Out1Operation<V> outOp; - - impl.Get()->Get(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Retrieves values mapped to the specified keys from cache. - * If some value is not present in cache, then it will be looked up from swap storage. If - * it's not present in swap, or if swap is disabled, and if read-through is allowed, value - * will be loaded from persistent store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param keys Keys. - * @return Map of key-value pairs. - */ - std::map<K, V> GetAll(const std::set<K>& keys) - { - IgniteError err; - - std::map<K, V> res = GetAll(keys, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Retrieves values mapped to the specified keys from cache. - * If some value is not present in cache, then it will be looked up from swap storage. If - * it's not present in swap, or if swap is disabled, and if read-through is allowed, value - * will be loaded from persistent store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param keys Keys. - * @param err Error. - * @return Map of key-value pairs. - */ - std::map<K, V> GetAll(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> inOp(&keys); - impl::OutMapOperation<K, V> outOp; - - impl.Get()->GetAll(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Associates the specified value with the specified key in the cache. - * If the cache previously contained a mapping for the key, - * the old value is replaced by the specified value. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - */ - void Put(const K& key, const V& val) - { - IgniteError err; - - Put(key, val, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Associates the specified value with the specified key in the cache. - * If the cache previously contained a mapping for the key, - * the old value is replaced by the specified value. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @param err Error. - */ - void Put(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> op(&key, &val); - - impl.Get()->Put(op, &err); - } - - /** - * Stores given key-value pairs in cache. - * If write-through is enabled, the stored values will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param vals Key-value pairs to store in cache. - */ - void PutAll(const std::map<K, V>& vals) - { - IgniteError err; - - PutAll(vals, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Stores given key-value pairs in cache. - * If write-through is enabled, the stored values will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param vals Key-value pairs to store in cache. - * @param err Error. - */ - void PutAll(const std::map<K, V>& vals, IgniteError& err) - { - impl::InMapOperation<K, V> op(&vals); - - impl.Get()->PutAll(op, &err); - } - - /** - * Associates the specified value with the specified key in this cache, - * returning an existing value if one existed. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @return The value associated with the key at the start of the - * operation or null if none was associated. - */ - V GetAndPut(const K& key, const V& val) - { - IgniteError err; - - V res = GetAndPut(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Associates the specified value with the specified key in this cache, - * returning an existing value if one existed. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @param err Error. - * @return The value associated with the key at the start of the - * operation or null if none was associated. - */ - V GetAndPut(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> inOp(&key, &val); - impl::Out1Operation<V> outOp; - - impl.Get()->GetAndPut(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Atomically replaces the value for a given key if and only if there is - * a value currently mapped by the key. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @return The previous value associated with the specified key, or - * null if there was no mapping for the key. - */ - V GetAndReplace(const K& key, const V& val) - { - IgniteError err; - - V res = GetAndReplace(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Atomically replaces the value for a given key if and only if there is - * a value currently mapped by the key. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @param err Error. - * @return The previous value associated with the specified key, or - * null if there was no mapping for the key. - */ - V GetAndReplace(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> inOp(&key, &val); - impl::Out1Operation<V> outOp; - - impl.Get()->GetAndReplace(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Atomically removes the entry for a key only if currently mapped to some value. - * - * @param key Key with which the specified value is associated. - * @return The value if one existed or null if no mapping existed for this key. - */ - V GetAndRemove(const K& key) - { - IgniteError err; - - V res = GetAndRemove(key, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Atomically removes the entry for a key only if currently mapped to some value. - * - * @param key Key with which the specified value is associated. - * @param err Error. - * @return The value if one existed or null if no mapping existed for this key. - */ - V GetAndRemove(const K& key, IgniteError& err) - { - impl::In1Operation<K> inOp(&key); - impl::Out1Operation<V> outOp; - - impl.Get()->GetAndRemove(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Atomically associates the specified key with the given value if it is not - * already associated with a value. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @return True if a value was set. - */ - bool PutIfAbsent(const K& key, const V& val) - { - IgniteError err; - - bool res = PutIfAbsent(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Atomically associates the specified key with the given value if it is not - * already associated with a value. - * - * @param key Key with which the specified value is to be associated. - * @param val Value to be associated with the specified key. - * @param err Error. - * @return True if a value was set. - */ - bool PutIfAbsent(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> op(&key, &val); - - return impl.Get()->PutIfAbsent(op, &err); - } - - /** - * Stores given key-value pair in cache only if cache had no previous mapping for it. - * If cache previously contained value for the given key, then this value is returned. - * In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, - * which in its turn may load the value from the swap storage, and consecutively, if it's not - * in swap, from the underlying persistent storage. - * If the returned value is not needed, method putxIfAbsent() should be used instead of this one to - * avoid the overhead associated with returning of the previous value. - * If write-through is enabled, the stored value will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param val Value to be associated with the given key. - * @return Previously contained value regardless of whether put happened or not - * (null if there was no previous value). - */ - V GetAndPutIfAbsent(const K& key, const V& val) - { - IgniteError err; - - V res = GetAndPutIfAbsent(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Stores given key-value pair in cache only if cache had no previous mapping for it. - * If cache previously contained value for the given key, then this value is returned. - * In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, - * which in its turn may load the value from the swap storage, and consecutively, if it's not - * in swap, from the underlying persistent storage. - * If the returned value is not needed, method putxIfAbsent() should be used instead of this one to - * avoid the overhead associated with returning of the previous value. - * If write-through is enabled, the stored value will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param val Value to be associated with the given key. - * @param err Error. - * @return Previously contained value regardless of whether put happened or not - * (null if there was no previous value). - */ - V GetAndPutIfAbsent(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> inOp(&key, &val); - impl::Out1Operation<V> outOp; - - impl.Get()->GetAndPutIfAbsent(inOp, outOp, &err); - - return outOp.GetResult(); - } - - /** - * Stores given key-value pair in cache only if there is a previous mapping for it. - * If cache previously contained value for the given key, then this value is returned. - * In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, - * which in its turn may load the value from the swap storage, and consecutively, if it's not - * in swap, rom the underlying persistent storage. - * If write-through is enabled, the stored value will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param val Value to be associated with the given key. - * @return True if the value was replaced. - */ - bool Replace(const K& key, const V& val) - { - IgniteError err; - - bool res = Replace(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Stores given key-value pair in cache only if there is a previous mapping for it. - * If cache previously contained value for the given key, then this value is returned. - * In case of PARTITIONED or REPLICATED caches, the value will be loaded from the primary node, - * which in its turn may load the value from the swap storage, and consecutively, if it's not - * in swap, rom the underlying persistent storage. - * If write-through is enabled, the stored value will be persisted to store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param val Value to be associated with the given key. - * @param err Error. - * @return True if the value was replaced. - */ - bool Replace(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> op(&key, &val); - - return impl.Get()->Replace(op, &err); - } - - /** - * Stores given key-value pair in cache only if only if the previous value is equal to the - * old value passed as argument. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param oldVal Old value to match. - * @param newVal Value to be associated with the given key. - * @return True if replace happened, false otherwise. - */ - bool Replace(const K& key, const V& oldVal, const V& newVal) - { - IgniteError err; - - bool res = Replace(key, oldVal, newVal, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Stores given key-value pair in cache only if only if the previous value is equal to the - * old value passed as argument. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key to store in cache. - * @param oldVal Old value to match. - * @param newVal Value to be associated with the given key. - * @param err Error. - * @return True if replace happened, false otherwise. - */ - bool Replace(const K& key, const V& oldVal, const V& newVal, IgniteError& err) - { - impl::In3Operation<K, V, V> op(&key, &oldVal, &newVal); - - return impl.Get()->ReplaceIfEqual(op, &err); - } - - /** - * Attempts to evict all entries associated with keys. Note, that entry will be evicted only - * if it's not used (not participating in any locks or transactions). - * - * @param keys Keys to evict from cache. - */ - void LocalEvict(const std::set<K>& keys) - { - IgniteError err; - - LocalEvict(keys, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Attempts to evict all entries associated with keys. Note, that entry will be evicted only - * if it's not used (not participating in any locks or transactions). - * - * @param keys Keys to evict from cache. - * @param err Error. - */ - void LocalEvict(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> op(&keys); - - impl.Get()->LocalEvict(op, &err); - } - - /** - * Clear cache. - */ - void Clear() - { - IgniteError err; - - Clear(err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Clear cache. - * - * @param err Error. - */ - void Clear(IgniteError& err) - { - impl.Get()->Clear(&err); - } - - /** - * Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * - * @param key Key to clear. - */ - void Clear(const K& key) - { - IgniteError err; - - Clear(key, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * - * @param key Key to clear. - * @param err Error. - */ - void Clear(const K& key, IgniteError& err) - { - impl::In1Operation<K> op(&key); - - impl.Get()->Clear(op, &err); - } - - /** - * Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * - * @param keys Keys to clear. - */ - void ClearAll(const std::set<K>& keys) - { - IgniteError err; - - ClearAll(keys, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * - * @param keys Keys to clear. - * @param err Error. - */ - void ClearAll(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> op(&keys); - - impl.Get()->ClearAll(op, &err); - } - - /** - * Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * Note that this operation is local as it merely clears an entry from local cache, it does not - * remove entries from remote caches. - * - * @param key Key to clear. - */ - void LocalClear(const K& key) - { - IgniteError err; - - LocalClear(key, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Clear entry from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * Note that this operation is local as it merely clears an entry from local cache, it does not - * remove entries from remote caches. - * - * @param key Key to clear. - * @param err Error. - */ - void LocalClear(const K& key, IgniteError& err) - { - impl::In1Operation<K> op(&key); - - impl.Get()->LocalClear(op, &err); - } - - /** - * Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * Note that this operation is local as it merely clears entries from local cache, it does not - * remove entries from remote caches. - * - * @param keys Keys to clear. - */ - void LocalClearAll(const std::set<K>& keys) - { - IgniteError err; - - LocalClearAll(keys, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Clear entries from the cache and swap storage, without notifying listeners or CacheWriters. - * Entry is cleared only if it is not currently locked, and is not participating in a transaction. - * Note that this operation is local as it merely clears entries from local cache, it does not - * remove entries from remote caches. - * - * @param keys Keys to clear. - * @param err Error. - */ - void LocalClearAll(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> op(&keys); - - impl.Get()->LocalClearAll(op, &err); - } - - /** - * Removes given key mapping from cache. If cache previously contained value for the given key, - * then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be - * loaded from the primary node, which in its turn may load the value from the disk-based swap - * storage, and consecutively, if it's not in swap, from the underlying persistent storage. - * If the returned value is not needed, method removex() should always be used instead of this - * one to avoid the overhead associated with returning of the previous value. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key whose mapping is to be removed from cache. - * @return False if there was no matching key. - */ - bool Remove(const K& key) - { - IgniteError err; - - bool res = Remove(key, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Removes given key mapping from cache. If cache previously contained value for the given key, - * then this value is returned. In case of PARTITIONED or REPLICATED caches, the value will be - * loaded from the primary node, which in its turn may load the value from the disk-based swap - * storage, and consecutively, if it's not in swap, from the underlying persistent storage. - * If the returned value is not needed, method removex() should always be used instead of this - * one to avoid the overhead associated with returning of the previous value. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key whose mapping is to be removed from cache. - * @param err Error. - * @return False if there was no matching key. - */ - bool Remove(const K& key, IgniteError& err) - { - impl::In1Operation<K> op(&key); - - return impl.Get()->Remove(op, &err); - } - - /** - * Removes given key mapping from cache if one exists and value is equal to the passed in value. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key whose mapping is to be removed from cache. - * @param val Value to match against currently cached value. - * @return True if entry was removed, false otherwise. - */ - bool Remove(const K& key, const V& val) - { - IgniteError err; - - bool res = Remove(key, val, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Removes given key mapping from cache if one exists and value is equal to the passed in value. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param key Key whose mapping is to be removed from cache. - * @param val Value to match against currently cached value. - * @param err Error. - * @return True if entry was removed, false otherwise. - */ - bool Remove(const K& key, const V& val, IgniteError& err) - { - impl::In2Operation<K, V> op(&key, &val); - - return impl.Get()->RemoveIfEqual(op, &err); - } - - /** - * Removes given key mappings from cache. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param keys Keys whose mappings are to be removed from cache. - */ - void RemoveAll(const std::set<K>& keys) - { - IgniteError err; - - RemoveAll(keys, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Removes given key mappings from cache. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param keys Keys whose mappings are to be removed from cache. - * @param err Error. - */ - void RemoveAll(const std::set<K>& keys, IgniteError& err) - { - impl::InSetOperation<K> op(&keys); - - impl.Get()->RemoveAll(op, &err); - } - - /** - * Removes all mappings from cache. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param err Error. - */ - void RemoveAll() - { - IgniteError err; - - RemoveAll(err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Removes all mappings from cache. - * If write-through is enabled, the value will be removed from store. - * This method is transactional and will enlist the entry into ongoing transaction if there is one. - * - * @param err Error. - */ - void RemoveAll(IgniteError& err) - { - return impl.Get()->RemoveAll(&err); - } - - /** - * Gets the number of all entries cached on this node. - * - * @return Cache size on this node. - */ - int32_t LocalSize() - { - return LocalSize(IGNITE_PEEK_MODE_ALL); - } - - /** - * Gets the number of all entries cached on this node. - * - * @param err Error. - * @return Cache size on this node. - */ - int32_t LocalSize(IgniteError& err) - { - return LocalSize(IGNITE_PEEK_MODE_ALL, err); - } - - /** - * Gets the number of all entries cached on this node. - * - * @param Peek modes. - * @return Cache size on this node. - */ - int32_t LocalSize(int32_t peekModes) - { - IgniteError err; - - int32_t res = LocalSize(peekModes, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Gets the number of all entries cached on this node. - * - * @param Peek modes. - * @param err Error. - * @return Cache size on this node. - */ - int32_t LocalSize(int32_t peekModes, IgniteError& err) - { - return impl.Get()->LocalSize(peekModes, &err); - } - - /** - * Gets the number of all entries cached across all nodes. - * NOTE: this operation is distributed and will query all participating nodes for their cache sizes. - * - * @return Cache size across all nodes. - */ - int32_t Size() - { - return Size(ignite::cache::IGNITE_PEEK_MODE_ALL); - } - - /** - * Gets the number of all entries cached across all nodes. - * NOTE: this operation is distributed and will query all participating nodes for their cache sizes. - * - * @param err Error. - * @return Cache size across all nodes. - */ - int32_t Size(IgniteError& err) - { - return Size(ignite::cache::IGNITE_PEEK_MODE_ALL, err); - } - - /** - * Gets the number of all entries cached across all nodes. - * NOTE: this operation is distributed and will query all participating nodes for their cache sizes. - * - * @param Peek modes. - * @return Cache size across all nodes. - */ - int32_t Size(int32_t peekModes) - { - IgniteError err; - - int32_t res = Size(peekModes, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Gets the number of all entries cached across all nodes. - * NOTE: this operation is distributed and will query all participating nodes for their cache sizes. - * - * @param Peek modes. - * @param err Error. - * @return Cache size across all nodes. - */ - int32_t Size(int32_t peekModes, IgniteError& err) - { - return impl.Get()->Size(peekModes, &err); - } - - /** - * Perform SQL query. - * - * @param qry Query. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::SqlQuery& qry) - { - IgniteError err; - - query::QueryCursor<K, V> res = Query(qry, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Perform SQL query. - * - * @param qry Query. - * @param err Error. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::SqlQuery& qry, IgniteError& err) - { - impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QuerySql(qry, &err); - - return query::QueryCursor<K, V>(cursorImpl); - } - - /* - * Perform text query. - * - * @param qry Query. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::TextQuery& qry) - { - IgniteError err; - - query::QueryCursor<K, V> res = Query(qry, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /* - * Perform text query. - * - * @param qry Query. - * @param err Error. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::TextQuery& qry, IgniteError& err) - { - impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QueryText(qry, &err); - - return query::QueryCursor<K, V>(cursorImpl); - } - - /* - * Perform scan query. - * - * @param qry Query. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::ScanQuery& qry) - { - IgniteError err; - - query::QueryCursor<K, V> res = Query(qry, err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /* - * Perform scan query. - * - * @param qry Query. - * @param err Error. - * @return Query cursor. - */ - query::QueryCursor<K, V> Query(const query::ScanQuery& qry, IgniteError& err) - { - impl::cache::query::QueryCursorImpl* cursorImpl = impl.Get()->QueryScan(qry, &err); - - return query::QueryCursor<K, V>(cursorImpl); - } - - private: - /** Implementation delegate. */ - ignite::common::concurrent::SharedPointer<impl::cache::CacheImpl> impl; - }; - } -} - -#endif
http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/cache_entry.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/cache_entry.h b/modules/platform/src/main/cpp/core/include/ignite/cache/cache_entry.h deleted file mode 100644 index 2b6c785..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/cache_entry.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_ENTRY -#define _IGNITE_CACHE_ENTRY - -#include <ignite/common/common.h> - -namespace ignite -{ - namespace cache - { - /** - * Cache entry. - */ - template<typename K, typename V> - class IGNITE_IMPORT_EXPORT CacheEntry - { - public: - /** - * Default constructor. - */ - CacheEntry() : key(K()), val(V()) - { - // No-op. - } - - /** - * Constructor. - * - * @param key Key. - * @param val Value. - */ - CacheEntry(const K& key, const V& val) : key(key), val(val) - { - // No-op. - } - - /** - * Copy constructor. - * - * @param other Other instance. - */ - CacheEntry(const CacheEntry& other) - { - key = other.key; - val = other.val; - } - - /** - * Assignment operator. - * - * @param other Other instance. - */ - CacheEntry& operator=(const CacheEntry& other) - { - if (this != &other) - { - CacheEntry tmp(other); - - K& key0 = key; - V& val0 = val; - - key = tmp.key; - val = tmp.val; - - tmp.key = key0; - tmp.val = val0; - } - - return *this; - } - - /** - * Get key. - * - * @return Key. - */ - K GetKey() - { - return key; - } - - /** - * Get value. - * - * @return Value. - */ - V GetValue() - { - return val; - } - - private: - /** Key. */ - K key; - - /** Value. */ - V val; - }; - } -} - -#endif http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/cache_peek_mode.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/cache_peek_mode.h b/modules/platform/src/main/cpp/core/include/ignite/cache/cache_peek_mode.h deleted file mode 100644 index be61887..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/cache_peek_mode.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_PEEK_MODE -#define _IGNITE_CACHE_PEEK_MODE - -namespace ignite -{ - namespace cache - { - /** - * Enumeration of all supported cache peek modes. - */ - enum CachePeekMode - { - /** - * Peeks into all available cache storages. - */ - IGNITE_PEEK_MODE_ALL = 0x01, - - /** - * Peek into near cache only (don't peek into partitioned cache). - * In case of LOCAL cache, behaves as IGNITE_PEEK_MODE_ALL mode. - */ - IGNITE_PEEK_MODE_NEAR = 0x02, - - /** - * Peek value from primary copy of partitioned cache only (skip near cache). - * In case of LOCAL cache, behaves as IGNITE_PEEK_MODE_ALL mode. - */ - IGNITE_PEEK_MODE_PRIMARY = 0x04, - - /** - * Peek value from backup copies of partitioned cache only (skip near cache). - * In case of LOCAL cache, behaves as IGNITE_PEEK_MODE_ALL mode. - */ - IGNITE_PEEK_MODE_BACKUP = 0x08, - - /** - * Peeks value from the on-heap storage only. - */ - IGNITE_PEEK_MODE_ONHEAP = 0x10, - - /** - * Peeks value from the off-heap storage only, without loading off-heap value into cache. - */ - IGNITE_PEEK_MODE_OFFHEAP = 0x20, - - /** - * Peeks value from the swap storage only, without loading swapped value into cache. - */ - IGNITE_PEEK_MODE_SWAP = 0x40 - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query.h deleted file mode 100644 index f2d19cd..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_QUERY -#define _IGNITE_QUERY - -#include "ignite/cache/query/query_argument.h" -#include "ignite/cache/query/query_cursor.h" -#include "ignite/cache/query/query_scan.h" -#include "ignite/cache/query/query_sql.h" -#include "ignite/cache/query/query_text.h" - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_argument.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_argument.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_argument.h deleted file mode 100644 index 0f41c56..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_argument.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_QUERY_ARGUMENT -#define _IGNITE_CACHE_QUERY_ARGUMENT - -#include "ignite/portable/portable_raw_writer.h" - -namespace ignite -{ - namespace cache - { - namespace query - { - /** - * Base class for all query arguments. - */ - class QueryArgumentBase - { - public: - /** - * Destructor. - */ - virtual ~QueryArgumentBase() - { - // No-op. - } - - /** - * Copy argument. - * - * @return Copy. - */ - virtual QueryArgumentBase* Copy() = 0; - - /** - * Write argument. - */ - virtual void Write(ignite::portable::PortableRawWriter& writer) = 0; - }; - - /** - * Query argument. - */ - template<typename T> - class QueryArgument : public QueryArgumentBase - { - public: - /** - * Constructor. - * - * @param val Value. - */ - QueryArgument(const T& val) : val(val) - { - // No-op. - } - - /** - * Copy constructor. - * - * @param other Other instance. - */ - QueryArgument(const QueryArgument& other) - { - val = other.val; - } - - /** - * Assignment operator. - * - * @param other Other instance. - */ - QueryArgument& operator=(const QueryArgument& other) - { - if (this != &other) - { - QueryArgument tmp(other); - - T val0 = val; - val = tmp.val; - tmp.val = val0; - } - - return *this; - } - - ~QueryArgument() - { - // No-op. - } - - QueryArgumentBase* Copy() - { - return new QueryArgument(val); - } - - void Write(ignite::portable::PortableRawWriter& writer) - { - writer.WriteObject<T>(val); - } - - private: - /** Value. */ - T val; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_cursor.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_cursor.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_cursor.h deleted file mode 100644 index 23133e1..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_cursor.h +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_QUERY_CURSOR -#define _IGNITE_CACHE_QUERY_CURSOR - -#include <vector> - -#include <ignite/common/concurrent.h> - -#include "ignite/cache/cache_entry.h" -#include "ignite/ignite_error.h" -#include "ignite/impl/cache/query/query_impl.h" -#include "ignite/impl/operations.h" - -namespace ignite -{ - namespace cache - { - namespace query - { - /** - * Query cursor. - */ - template<typename K, typename V> - class QueryCursor - { - public: - /** - * Default constructor. - */ - QueryCursor() : impl(NULL) - { - // No-op. - } - - /** - * Constructor. - * - * @param impl Implementation. - */ - QueryCursor(impl::cache::query::QueryCursorImpl* impl) : - impl(ignite::common::concurrent::SharedPointer<impl::cache::query::QueryCursorImpl>(impl)) - { - // No-op. - } - - /** - * Check whether next entry exists. - * - * @return True if next entry exists. - */ - bool HasNext() - { - IgniteError err; - - bool res = HasNext(err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Check whether next entry exists. - * - * @param err Error. - * @return True if next entry exists. - */ - bool HasNext(IgniteError& err) - { - impl::cache::query::QueryCursorImpl* impl0 = impl.Get(); - - if (impl0) - return impl0->HasNext(&err); - else - { - err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, - "Instance is not usable (did you check for error?)."); - - return false; - } - } - - /** - * Get next entry. - * - * @return Next entry. - */ - CacheEntry<K, V> GetNext() - { - IgniteError err; - - CacheEntry<K, V> res = GetNext(err); - - IgniteError::ThrowIfNeeded(err); - - return res; - } - - /** - * Get next entry. - * - * @param err Error. - * @return Next entry. - */ - CacheEntry<K, V> GetNext(IgniteError& err) - { - impl::cache::query::QueryCursorImpl* impl0 = impl.Get(); - - if (impl0) { - impl::Out2Operation<K, V> outOp; - - impl0->GetNext(outOp, &err); - - if (err.GetCode() == IgniteError::IGNITE_SUCCESS) - { - K& key = outOp.Get1(); - V& val = outOp.Get2(); - - return CacheEntry<K, V>(key, val); - } - else - return CacheEntry<K, V>(); - } - else - { - err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, - "Instance is not usable (did you check for error?)."); - - return CacheEntry<K, V>(); - } - } - - /** - * Get all entries. - * - * @param Vector where query entries will be stored. - */ - void GetAll(std::vector<CacheEntry<K, V>>& res) - { - IgniteError err; - - GetAll(res, err); - - IgniteError::ThrowIfNeeded(err); - } - - /** - * Get all entries. - * - * @param Vector where query entries will be stored. - * @param err Error. - */ - void GetAll(std::vector<CacheEntry<K, V>>& res, IgniteError& err) - { - impl::cache::query::QueryCursorImpl* impl0 = impl.Get(); - - if (impl0) { - impl::OutQueryGetAllOperation<K, V> outOp(&res); - - impl0->GetAll(outOp, &err); - } - else - err = IgniteError(IgniteError::IGNITE_ERR_GENERIC, - "Instance is not usable (did you check for error?)."); - } - - private: - /** Implementation delegate. */ - ignite::common::concurrent::SharedPointer<impl::cache::query::QueryCursorImpl> impl; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_scan.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_scan.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_scan.h deleted file mode 100644 index c3ec845..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_scan.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_QUERY_SCAN -#define _IGNITE_CACHE_QUERY_SCAN - -#include <stdint.h> -#include <string> - -#include "ignite/portable/portable_raw_writer.h" - -namespace ignite -{ - namespace cache - { - namespace query - { - /* - * Scab query. - */ - class ScanQuery - { - public: - /* - * Constructor. - */ - ScanQuery() : part(-1), pageSize(1024), loc(false) - { - // No-op. - } - - /* - * Constructor. - * - * @param part Partition. - */ - ScanQuery(int32_t part) : part(part), pageSize(1024), loc(false) - { - // No-op. - } - - /* - * Get partition to scan. - * - * @return Partition to scan. - */ - int32_t GetPartition() - { - return part; - } - - /* - * Set partition to scan. - * - * @param part Partition to scan. - */ - void SetPartition(int32_t part) - { - this->part = part; - } - - /* - * Get page size. - * - * @return Page size. - */ - int32_t GetPageSize() - { - return pageSize; - } - - /* - * Set page size. - * - * @param pageSize Page size. - */ - void SetPageSize(int32_t pageSize) - { - this->pageSize = pageSize; - } - - /* - * Get local flag. - * - * @return Local flag. - */ - bool IsLocal() - { - return loc; - } - - /* - * Set local flag. - * - * @param loc Local flag. - */ - void SetLocal(bool loc) - { - this->loc = loc; - } - - /* - * Write query info to the stream. - * - * @param writer Writer. - */ - void Write(portable::PortableRawWriter& writer) const - { - writer.WriteBool(loc); - writer.WriteInt32(pageSize); - - if (part < 0) - writer.WriteBool(false); - else - { - writer.WriteBool(true); - writer.WriteInt32(part); - } - - writer.WriteNull(); // Predicates are not supported yet. - } - - private: - /* Partition. */ - int32_t part; - - /* Page size. */ - int32_t pageSize; - - /* Local flag. */ - bool loc; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_sql.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_sql.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_sql.h deleted file mode 100644 index a2e0f33..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_sql.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_QUERY_SQL -#define _IGNITE_CACHE_QUERY_SQL - -#include <stdint.h> -#include <string> -#include <vector> - -#include "ignite/cache/query/query_argument.h" -#include "ignite/portable/portable_raw_writer.h" - -namespace ignite -{ - namespace cache - { - namespace query - { - /** - * Sql query. - */ - class SqlQuery - { - public: - /** - * Constructor. - * - * @param type Type name. - * @param sql SQL string. - */ - SqlQuery(std::string type, std::string sql) : type(type), sql(sql), pageSize(1024), - loc(false), args(NULL) - { - // No-op. - } - - /** - * Copy constructor. - * - * @param other Other instance. - */ - SqlQuery(const SqlQuery& other) - { - type = other.type; - sql = other.sql; - pageSize = other.pageSize; - loc = other.loc; - - if (other.args) - { - args = new std::vector<QueryArgumentBase*>(); - - for (std::vector<QueryArgumentBase*>::iterator it = other.args->begin(); - it != other.args->end(); ++it) - args->push_back((*it)->Copy()); - } - else - args = NULL; - } - - /** - * Assignment operator. - * - * @param other Other instance. - */ - SqlQuery& operator=(const SqlQuery& other) - { - if (this != &other) - { - type = other.type; - sql = other.sql; - pageSize = other.pageSize; - loc = other.loc; - - SqlQuery tmp(other); - - std::vector<QueryArgumentBase*>* args0 = args; - - args = tmp.args; - - tmp.args = args0; - } - - return *this; - } - - /** - * Destructor. - */ - ~SqlQuery() - { - if (args) - { - for (std::vector<QueryArgumentBase*>::iterator it = args->begin(); it != args->end(); ++it) - delete (*it); - - delete args; - } - } - - /** - * Get type name. - * - * @return Type name. - */ - std::string GetType() - { - return type; - } - - /** - * Set type name. - * - * @param sql Type name. - */ - void SetType(std::string type) - { - this->type = type; - } - - /** - * Get SQL string. - * - * @return SQL string. - */ - std::string GetSql() - { - return sql; - } - - /** - * Set SQL string. - * - * @param sql SQL string. - */ - void SetSql(std::string sql) - { - this->sql = sql; - } - - /** - * Get page size. - * - * @return Page size. - */ - int32_t GetPageSize() - { - return pageSize; - } - - /** - * Set page size. - * - * @param pageSize Page size. - */ - void SetPageSize(int32_t pageSize) - { - this->pageSize = pageSize; - } - - /** - * Get local flag. - * - * @return Local flag. - */ - bool IsLocal() - { - return loc; - } - - /** - * Set local flag. - * - * @param loc Local flag. - */ - void SetLocal(bool loc) - { - this->loc = loc; - } - - /** - * Add argument. - * - * @param arg Argument. - */ - template<typename T> - void AddArgument(const T& arg) - { - if (!args) - args = new std::vector<QueryArgumentBase*>(); - - args->push_back(new QueryArgument<T>(arg)); - } - - /** - * Write query info to the stream. - * - * @param writer Writer. - */ - void Write(portable::PortableRawWriter& writer) const - { - writer.WriteBool(loc); - writer.WriteString(sql); - writer.WriteString(type); - writer.WriteInt32(pageSize); - - if (args) - { - writer.WriteInt32(static_cast<int32_t>(args->size())); - - for (std::vector<QueryArgumentBase*>::iterator it = args->begin(); it != args->end(); ++it) - (*it)->Write(writer); - } - else - writer.WriteInt32(0); - } - - private: - /** Type name. */ - std::string type; - - /** SQL string. */ - std::string sql; - - /** Page size. */ - int32_t pageSize; - - /** Local flag. */ - bool loc; - - /** Arguments. */ - std::vector<QueryArgumentBase*>* args; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_text.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_text.h b/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_text.h deleted file mode 100644 index 67d3ecc..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/cache/query/query_text.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_CACHE_QUERY_TEXT -#define _IGNITE_CACHE_QUERY_TEXT - -#include <stdint.h> -#include <string> - -#include "ignite/portable/portable_raw_writer.h" - -namespace ignite -{ - namespace cache - { - namespace query - { - /* - * Text query. - */ - class TextQuery - { - public: - /* - * Constructor. - * - * @param type Type name. - * @param text Text string. - */ - TextQuery(std::string type, std::string text) : type(type), text(text), pageSize(1024), loc(false) - { - // No-op. - } - - /* - * Get type name. - * - * @return Type name. - */ - std::string GetType() - { - return type; - } - - /* - * Set type name. - * - * @param sql Type name. - */ - void SetType(std::string type) - { - this->type = type; - } - - /* - * Get text string. - * - * @return text string. - */ - std::string GetText() - { - return text; - } - - /* - * Set text string. - * - * @param text Text string. - */ - void SetText(std::string text) - { - this->text = text; - } - - /* - * Get page size. - * - * @return Page size. - */ - int32_t GetPageSize() - { - return pageSize; - } - - /* - * Set page size. - * - * @param pageSize Page size. - */ - void SetPageSize(int32_t pageSize) - { - this->pageSize = pageSize; - } - - /* - * Get local flag. - * - * @return Local flag. - */ - bool IsLocal() - { - return loc; - } - - /* - * Set local flag. - * - * @param loc Local flag. - */ - void SetLocal(bool loc) - { - this->loc = loc; - } - - /* - * Write query info to the stream. - * - * @param writer Writer. - */ - void Write(portable::PortableRawWriter& writer) const - { - writer.WriteBool(loc); - writer.WriteString(text); - writer.WriteString(type); - writer.WriteInt32(pageSize); - } - - private: - /* Type name. */ - std::string type; - - /* Text string. */ - std::string text; - - /* Page size. */ - int32_t pageSize; - - /* Local flag. */ - bool loc; - }; - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/guid.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/guid.h b/modules/platform/src/main/cpp/core/include/ignite/guid.h deleted file mode 100644 index 9469769..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/guid.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _IGNITE_GUID -#define _IGNITE_GUID - -#include <stdint.h> - -#include <ignite/common/common.h> - -namespace ignite -{ - /** - * Global universally unique identifier (GUID). - */ - class IGNITE_IMPORT_EXPORT Guid - { - public: - /** - * Default constructor. - */ - Guid(); - - /** - * Constructor. - * - * @param most Most significant bits. - * @param least Least significant bits. - */ - Guid(int64_t most, int64_t least); - - /** - * Returns the most significant 64 bits of this instance. - * - * @return The most significant 64 bits of this instance. - */ - int64_t GetMostSignificantBits() const; - - /** - * Returns the least significant 64 bits of this instance. - * - * @return The least significant 64 bits of this instance. - */ - int64_t GetLeastSignificantBits() const; - - /** - * The version number associated with this instance. The version - * number describes how this Guid was generated. - * - * The version number has the following meaning: - * 1 Time-based UUID; - * 2 DCE security UUID; - * 3 Name-based UUID; - * 4 Randomly generated UUID. - * - * @return The version number of this instance. - */ - int32_t GetVersion() const; - - /** - * The variant number associated with this instance. The variant - * number describes the layout of the Guid. - * - * The variant number has the following meaning: - * 0 Reserved for NCS backward compatibility; - * 2 IETF RFC 4122 (Leach-Salz), used by this class; - * 6 Reserved, Microsoft Corporation backward compatibility; - * 7 Reserved for future definition. - * - * @return The variant number of this instance. - */ - int32_t GetVariant() const; - - /** - * Get hash code of this instance (used in serialization). - * - * @return Hash code. - */ - int32_t GetHashCode() const; - - /** - * Comparison operator override. - * - * @param val1 First value. - * @param val2 Second value. - * @return True if equal. - */ - friend bool IGNITE_IMPORT_EXPORT operator== (Guid& val1, Guid& val2); - private: - /** Most significant bits. */ - int64_t most; - - /** Least significant bits. */ - int64_t least; - }; -} - -#endif \ No newline at end of file
