http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj deleted file mode 100644 index 3f20324..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj +++ /dev/null @@ -1,373 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{4CD2F726-7E2B-46C4-A5BA-057BB82EECB6}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>Apache.Ignite.Core</RootNamespace> - <AssemblyName>Apache.Ignite.Core</AssemblyName> - <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> - <PlatformTarget>x64</PlatformTarget> - <OutputPath>bin\x64\Debug\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DefineConstants>DEBUG</DefineConstants> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> - <PlatformTarget>x64</PlatformTarget> - <OutputPath>bin\x64\Release\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> - <PlatformTarget>x86</PlatformTarget> - <OutputPath>bin\x86\Debug\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - <DefineConstants>DEBUG</DefineConstants> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> - <PlatformTarget>x86</PlatformTarget> - <OutputPath>bin\x86\Release\</OutputPath> - <AllowUnsafeBlocks>true</AllowUnsafeBlocks> - </PropertyGroup> - <PropertyGroup> - <SignAssembly>false</SignAssembly> - </PropertyGroup> - <PropertyGroup> - <AssemblyOriginatorKeyFile> - </AssemblyOriginatorKeyFile> - </PropertyGroup> - <PropertyGroup> - <DelaySign>false</DelaySign> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Core" /> - </ItemGroup> - <ItemGroup> - <Compile Include="Cache\CacheAtomicUpdateTimeoutException.cs" /> - <Compile Include="Cache\CacheEntryProcessorException.cs" /> - <Compile Include="Cache\CacheException.cs" /> - <Compile Include="Cache\CachePartialUpdateException.cs" /> - <Compile Include="Cache\CachePeekMode.cs" /> - <Compile Include="Cache\Event\CacheEntryEventType.cs" /> - <Compile Include="Cache\Event\ICacheEntryEvent.cs" /> - <Compile Include="Cache\Event\ICacheEntryEventFilter.cs" /> - <Compile Include="Cache\Event\ICacheEntryEventListener.cs" /> - <Compile Include="Cache\Expiry\ExpiryPolicy.cs" /> - <Compile Include="Cache\Expiry\IExpiryPolicy.cs" /> - <Compile Include="Cache\ICache.cs" /> - <Compile Include="Cache\ICacheAffinity.cs" /> - <Compile Include="Cache\ICacheEntry.cs" /> - <Compile Include="Cache\ICacheEntryFilter.cs" /> - <Compile Include="Cache\ICacheEntryProcessor.cs" /> - <Compile Include="Cache\ICacheEntryProcessorResult.cs" /> - <Compile Include="Cache\ICacheLock.cs" /> - <Compile Include="Cache\ICacheMetrics.cs" /> - <Compile Include="Cache\IMutableCacheEntry.cs" /> - <Compile Include="Cache\Query\Continuous\ContinuousQuery.cs" /> - <Compile Include="Cache\Query\Continuous\IContinuousQueryHandle.cs" /> - <Compile Include="Cache\Query\IQueryCursor.cs" /> - <Compile Include="Cache\Query\QueryBase.cs" /> - <Compile Include="Cache\Query\ScanQuery.cs" /> - <Compile Include="Cache\Query\SqlFieldsQuery.cs" /> - <Compile Include="Cache\Query\SqlQuery.cs" /> - <Compile Include="Cache\Query\TextQuery.cs" /> - <Compile Include="Cache\Store\CacheParallelLoadStoreAdapter.cs" /> - <Compile Include="Cache\Store\CacheStoreAdapter.cs" /> - <Compile Include="Cache\Store\CacheStoreException.cs" /> - <Compile Include="Cache\Store\ICacheStore.cs" /> - <Compile Include="Cache\Store\ICacheStoreSession.cs" /> - <Compile Include="Cluster\ClusterGroupEmptyException.cs" /> - <Compile Include="Cluster\ClusterTopologyException.cs" /> - <Compile Include="Cluster\ICluster.cs" /> - <Compile Include="Cluster\IClusterGroup.cs" /> - <Compile Include="Cluster\IClusterMetrics.cs" /> - <Compile Include="Cluster\IClusterNode.cs" /> - <Compile Include="Cluster\IClusterNodeFilter.cs" /> - <Compile Include="Common\IgniteException.cs" /> - <Compile Include="Common\IAsyncSupport.cs" /> - <Compile Include="Common\IFuture.cs" /> - <Compile Include="Common\IgniteGuid.cs" /> - <Compile Include="Compute\ComputeExecutionRejectedException.cs" /> - <Compile Include="Compute\ComputeJobAdapter.cs" /> - <Compile Include="Compute\ComputeJobFailoverException.cs" /> - <Compile Include="Compute\ComputeJobResultPolicy.cs" /> - <Compile Include="Compute\ComputeTaskAdapter.cs" /> - <Compile Include="Compute\ComputeTaskCancelledException.cs" /> - <Compile Include="Compute\ComputeTaskNoResultCacheAttribute.cs" /> - <Compile Include="Compute\ComputeTaskSplitAdapter.cs" /> - <Compile Include="Compute\ComputeTaskTimeoutException.cs" /> - <Compile Include="Compute\ComputeUserUndeclaredException.cs" /> - <Compile Include="Compute\ICompute.cs" /> - <Compile Include="Compute\IComputeFunc.cs" /> - <Compile Include="Compute\IComputeJob.cs" /> - <Compile Include="Compute\IComputeJobResult.cs" /> - <Compile Include="Compute\IComputeReducer.cs" /> - <Compile Include="Compute\IComputeTask.cs" /> - <Compile Include="Datastream\IDataStreamer.cs" /> - <Compile Include="Datastream\IStreamReceiver.cs" /> - <Compile Include="Datastream\StreamTransformer.cs" /> - <Compile Include="Datastream\StreamVisitor.cs" /> - <Compile Include="Events\CacheEvent.cs" /> - <Compile Include="Events\CacheQueryExecutedEvent.cs" /> - <Compile Include="Events\CacheQueryReadEvent.cs" /> - <Compile Include="Events\CacheRebalancingEvent.cs" /> - <Compile Include="Events\CheckpointEvent.cs" /> - <Compile Include="Events\DiscoveryEvent.cs" /> - <Compile Include="Events\EventBase.cs" /> - <Compile Include="Events\EventReader.cs" /> - <Compile Include="Events\EventType.cs" /> - <Compile Include="Events\IEvent.cs" /> - <Compile Include="Events\IEventFilter.cs" /> - <Compile Include="Events\IEvents.cs" /> - <Compile Include="Events\JobEvent.cs" /> - <Compile Include="Events\SwapSpaceEvent.cs" /> - <Compile Include="Events\TaskEvent.cs" /> - <Compile Include="IgniteConfiguration.cs" /> - <Compile Include="Ignition.cs" /> - <Compile Include="Common\AsyncSupportedAttribute.cs" /> - <Compile Include="IIgnite.cs" /> - <Compile Include="Impl\Cache\CacheAffinityImpl.cs" /> - <Compile Include="Impl\Cache\CacheEntry.cs" /> - <Compile Include="Impl\Cache\CacheEntryFilterHolder.cs" /> - <Compile Include="Impl\Cache\CacheEntryProcessorHolder.cs" /> - <Compile Include="Impl\Cache\CacheEntryProcessorResult.cs" /> - <Compile Include="Impl\Cache\CacheEntryProcessorResultHolder.cs" /> - <Compile Include="Impl\Cache\CacheEnumerable.cs" /> - <Compile Include="Impl\Cache\CacheEnumerator.cs" /> - <Compile Include="Impl\Cache\CacheEnumeratorProxy.cs" /> - <Compile Include="Impl\Cache\CacheImpl.cs" /> - <Compile Include="Impl\Cache\CacheLock.cs" /> - <Compile Include="Impl\Cache\CacheMetricsImpl.cs" /> - <Compile Include="Impl\Cache\CacheOp.cs" /> - <Compile Include="Impl\Cache\CacheProxyImpl.cs" /> - <Compile Include="Impl\Cache\Event\CacheEntryCreateEvent.cs" /> - <Compile Include="Impl\Cache\Event\CacheEntryRemoveEvent.cs" /> - <Compile Include="Impl\Cache\Event\CacheEntryUpdateEvent.cs" /> - <Compile Include="Impl\Cache\MutableCacheEntry.cs" /> - <Compile Include="Impl\Cache\Query\AbstractQueryCursor.cs" /> - <Compile Include="Impl\Cache\Query\Continuous\ContinuousQueryFilter.cs" /> - <Compile Include="Impl\Cache\Query\Continuous\ContinuousQueryFilterHolder.cs" /> - <Compile Include="Impl\Cache\Query\Continuous\ContinuousQueryHandleImpl.cs" /> - <Compile Include="Impl\Cache\Query\Continuous\ContinuousQueryUtils.cs" /> - <Compile Include="Impl\Cache\Query\FieldsQueryCursor.cs" /> - <Compile Include="Impl\Cache\Query\QueryCursor.cs" /> - <Compile Include="Impl\Cache\Store\CacheStore.cs" /> - <Compile Include="Impl\Cache\Store\CacheStoreSession.cs" /> - <Compile Include="Impl\Cache\Store\CacheStoreSessionProxy.cs" /> - <Compile Include="Impl\Cluster\ClusterGroupImpl.cs" /> - <Compile Include="Impl\Cluster\ClusterMetricsImpl.cs" /> - <Compile Include="Impl\Cluster\ClusterNodeImpl.cs" /> - <Compile Include="Impl\Cluster\IClusterGroupEx.cs" /> - <Compile Include="Impl\Collections\CollectionExtensions.cs" /> - <Compile Include="Impl\Collections\MultiValueDictionary.cs" /> - <Compile Include="Impl\Collections\ReadOnlyCollection.cs" /> - <Compile Include="Impl\Collections\ReadOnlyDictionary.cs" /> - <Compile Include="Impl\Common\AsyncResult.cs" /> - <Compile Include="Impl\Common\CompletedAsyncResult.cs" /> - <Compile Include="Impl\Common\CopyOnWriteConcurrentDictionary.cs" /> - <Compile Include="Impl\Common\DelegateConverter.cs" /> - <Compile Include="Impl\Common\DelegateTypeDescriptor.cs" /> - <Compile Include="Impl\Common\Future.cs" /> - <Compile Include="Impl\Common\FutureConverter.cs" /> - <Compile Include="Impl\Common\FutureType.cs" /> - <Compile Include="Impl\Common\IgniteArgumentCheck.cs" /> - <Compile Include="Impl\Common\IFutureConverter.cs" /> - <Compile Include="Impl\Common\IFutureInternal.cs" /> - <Compile Include="Impl\Common\LoadedAssembliesResolver.cs" /> - <Compile Include="Impl\Common\PortableResultWrapper.cs" /> - <Compile Include="Impl\Common\TypeCaster.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeAbstractClosureTask.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeActionJob.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeFuncJob.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeMultiClosureTask.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeOutFuncJob.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeReducingClosureTask.cs" /> - <Compile Include="Impl\Compute\Closure\ComputeSingleClosureTask.cs" /> - <Compile Include="Impl\Compute\Closure\IComputeResourceInjector.cs" /> - <Compile Include="Impl\Compute\Compute.cs" /> - <Compile Include="Impl\Compute\ComputeAsync.cs" /> - <Compile Include="Impl\Compute\ComputeFunc.cs" /> - <Compile Include="Impl\Compute\ComputeImpl.cs" /> - <Compile Include="Impl\Compute\ComputeJob.cs" /> - <Compile Include="Impl\Compute\ComputeJobHolder.cs" /> - <Compile Include="Impl\Compute\ComputeJobResultGenericWrapper.cs" /> - <Compile Include="Impl\Compute\ComputeJobResultImpl.cs" /> - <Compile Include="Impl\Compute\ComputeOutFunc.cs" /> - <Compile Include="Impl\Compute\ComputeTaskHolder.cs" /> - <Compile Include="Impl\Datastream\DataStreamerBatch.cs" /> - <Compile Include="Impl\Datastream\DataStreamerEntry.cs" /> - <Compile Include="Impl\Datastream\DataStreamerImpl.cs" /> - <Compile Include="Impl\Datastream\DataStreamerRemoveEntry.cs" /> - <Compile Include="Impl\Datastream\StreamReceiverHolder.cs" /> - <Compile Include="Impl\Events\Events.cs" /> - <Compile Include="Impl\Events\EventsAsync.cs" /> - <Compile Include="Impl\Events\RemoteListenEventFilter.cs" /> - <Compile Include="Impl\ExceptionUtils.cs" /> - <Compile Include="Impl\IgniteConfigurationEx.cs" /> - <Compile Include="Impl\Ignite.cs" /> - <Compile Include="Impl\IgniteManager.cs" /> - <Compile Include="Impl\IgniteProxy.cs" /> - <Compile Include="Impl\PlatformTarget.cs" /> - <Compile Include="Impl\IgniteUtils.cs" /> - <Compile Include="Impl\Handle\Handle.cs" /> - <Compile Include="Impl\Handle\HandleRegistry.cs" /> - <Compile Include="Impl\Handle\IHandle.cs" /> - <Compile Include="Impl\IInteropCallback.cs" /> - <Compile Include="Impl\InteropExceptionHolder.cs" /> - <Compile Include="Impl\LifecycleBeanHolder.cs" /> - <Compile Include="Impl\Memory\InteropExternalMemory.cs" /> - <Compile Include="Impl\Memory\InteropMemoryUtils.cs" /> - <Compile Include="Impl\Memory\IPlatformMemory.cs" /> - <Compile Include="Impl\Memory\PlatformBigEndianMemoryStream.cs" /> - <Compile Include="Impl\Memory\PlatformMemory.cs" /> - <Compile Include="Impl\Memory\PlatformMemoryManager.cs" /> - <Compile Include="Impl\Memory\PlatformMemoryPool.cs" /> - <Compile Include="Impl\Memory\PlatformMemoryStream.cs" /> - <Compile Include="Impl\Memory\PlatformMemoryUtils.cs" /> - <Compile Include="Impl\Memory\PlatformPooledMemory.cs" /> - <Compile Include="Impl\Memory\PlatformRawMemory.cs" /> - <Compile Include="Impl\Memory\PlatformUnpooledMemory.cs" /> - <Compile Include="Impl\Messaging\MessageFilterHolder.cs" /> - <Compile Include="Impl\Messaging\Messaging.cs" /> - <Compile Include="Impl\Messaging\MessagingAsync.cs" /> - <Compile Include="Impl\NativeMethods.cs" /> - <Compile Include="Impl\Portable\IO\IPortableStream.cs" /> - <Compile Include="Impl\Portable\IO\PortableAbstractStream.cs" /> - <Compile Include="Impl\Portable\IO\PortableHeapStream.cs" /> - <Compile Include="Impl\Portable\IO\PortableStreamAdapter.cs" /> - <Compile Include="Impl\Portable\IPortableSystemTypeSerializer.cs" /> - <Compile Include="Impl\Portable\IPortableTypeDescriptor.cs" /> - <Compile Include="Impl\Portable\IPortableWriteAware.cs" /> - <Compile Include="Impl\Portable\Metadata\IPortableMetadataHandler.cs" /> - <Compile Include="Impl\Portable\Metadata\PortableHashsetMetadataHandler.cs" /> - <Compile Include="Impl\Portable\Metadata\PortableMetadataHolder.cs" /> - <Compile Include="Impl\Portable\Metadata\PortableMetadataImpl.cs" /> - <Compile Include="Impl\Portable\PortableBuilderField.cs" /> - <Compile Include="Impl\Portable\PortableBuilderImpl.cs" /> - <Compile Include="Impl\Portable\PortableCollectionInfo.cs" /> - <Compile Include="Impl\Portable\PortableFullTypeDescriptor.cs" /> - <Compile Include="Impl\Portable\PortableHandleDictionary.cs" /> - <Compile Include="Impl\Portable\PortableMarshalAwareSerializer.cs" /> - <Compile Include="Impl\Portable\PortableMarshaller.cs" /> - <Compile Include="Impl\Portable\PortableMode.cs" /> - <Compile Include="Impl\Portable\PortableObjectHandle.cs" /> - <Compile Include="Impl\Portable\PortableOrSerializableObjectHolder.cs" /> - <Compile Include="Impl\Portable\PortableReaderHandleDictionary.cs" /> - <Compile Include="Impl\Portable\PortableReaderImpl.cs" /> - <Compile Include="Impl\Portable\PortableReflectiveRoutines.cs" /> - <Compile Include="Impl\Portable\PortableReflectiveSerializer.cs" /> - <Compile Include="Impl\Portable\PortablesImpl.cs" /> - <Compile Include="Impl\Portable\PortableSurrogateTypeDescriptor.cs" /> - <Compile Include="Impl\Portable\PortableSystemHandlers.cs" /> - <Compile Include="Impl\Portable\PortableSystemTypeSerializer.cs" /> - <Compile Include="Impl\Portable\PortableUserObject.cs" /> - <Compile Include="Impl\Portable\PortableUtils.cs" /> - <Compile Include="Impl\Portable\PortableWriterImpl.cs" /> - <Compile Include="Impl\Portable\SerializableObjectHolder.cs" /> - <Compile Include="Impl\Portable\TypeResolver.cs" /> - <Compile Include="Impl\Resource\IResourceInjector.cs" /> - <Compile Include="Impl\Resource\ResourceFieldInjector.cs" /> - <Compile Include="Impl\Resource\ResourceMethodInjector.cs" /> - <Compile Include="Impl\Resource\ResourceProcessor.cs" /> - <Compile Include="Impl\Resource\ResourcePropertyInjector.cs" /> - <Compile Include="Impl\Resource\ResourceTypeDescriptor.cs" /> - <Compile Include="Impl\Services\ServiceContext.cs" /> - <Compile Include="Impl\Services\ServiceDescriptor.cs" /> - <Compile Include="Impl\Services\ServiceProxy.cs" /> - <Compile Include="Impl\Services\ServiceProxyInvoker.cs" /> - <Compile Include="Impl\Services\ServiceProxySerializer.cs" /> - <Compile Include="Impl\Services\Services.cs" /> - <Compile Include="Impl\Services\ServicesAsync.cs" /> - <Compile Include="Impl\Transactions\AsyncTransaction.cs" /> - <Compile Include="Impl\Transactions\Transaction.cs" /> - <Compile Include="Impl\Transactions\TransactionImpl.cs" /> - <Compile Include="Impl\Transactions\TransactionMetricsImpl.cs" /> - <Compile Include="Impl\Transactions\TransactionsImpl.cs" /> - <Compile Include="Impl\Unmanaged\IUnmanagedTarget.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedCallbackHandlers.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedCallbacks.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedContext.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedNonReleaseableTarget.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedTarget.cs" /> - <Compile Include="Impl\Unmanaged\UnmanagedUtils.cs" /> - <Compile Include="Lifecycle\ILifecycleBean.cs" /> - <Compile Include="Lifecycle\LifecycleEventType.cs" /> - <Compile Include="Messaging\IMessageFilter.cs" /> - <Compile Include="Messaging\IMessaging.cs" /> - <Compile Include="Portable\IPortableBuilder.cs" /> - <Compile Include="Portable\IPortableIdMapper.cs" /> - <Compile Include="Portable\IPortableMarshalAware.cs" /> - <Compile Include="Portable\IPortableMetadata.cs" /> - <Compile Include="Portable\IPortableNameMapper.cs" /> - <Compile Include="Portable\IPortableObject.cs" /> - <Compile Include="Portable\IPortableRawReader.cs" /> - <Compile Include="Portable\IPortableRawWriter.cs" /> - <Compile Include="Portable\IPortableReader.cs" /> - <Compile Include="Portable\IPortables.cs" /> - <Compile Include="Portable\IPortableSerializer.cs" /> - <Compile Include="Portable\IPortableWriter.cs" /> - <Compile Include="Portable\PortableConfiguration.cs" /> - <Compile Include="Portable\PortableException.cs" /> - <Compile Include="Portable\PortableTypeConfiguration.cs" /> - <Compile Include="Portable\PortableTypeNames.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="Resource\InstanceResourceAttribute.cs" /> - <Compile Include="Resource\StoreSessionResourceAttribute.cs" /> - <Compile Include="Services\IService.cs" /> - <Compile Include="Services\IServiceContext.cs" /> - <Compile Include="Services\IServiceDescriptor.cs" /> - <Compile Include="Services\IServices.cs" /> - <Compile Include="Services\ServiceConfiguration.cs" /> - <Compile Include="Services\ServiceInvocationException.cs" /> - <Compile Include="Transactions\ITransaction.cs" /> - <Compile Include="Transactions\ITransactionMetrics.cs" /> - <Compile Include="Transactions\ITransactions.cs" /> - <Compile Include="Transactions\TransactionConcurrency.cs" /> - <Compile Include="Transactions\TransactionHeuristicException.cs" /> - <Compile Include="Transactions\TransactionIsolation.cs" /> - <Compile Include="Transactions\TransactionOptimisticException.cs" /> - <Compile Include="Transactions\TransactionRollbackException.cs" /> - <Compile Include="Transactions\TransactionState.cs" /> - <Compile Include="Transactions\TransactionTimeoutException.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\..\cpp\common\project\vs\common.vcxproj"> - <Project>{4f7e4917-4612-4b96-9838-025711ade391}</Project> - <Name>common</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> - <EmbeddedResource Include="$(SolutionDir)\x64\Debug\ignite.common.dll"> - <Link>resources\debug\x64\ignite.common.dll</Link> - </EmbeddedResource> - </ItemGroup> - <ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> - <EmbeddedResource Include="$(SolutionDir)\x64\Release\ignite.common.dll"> - <Link>resources\release\x64\ignite.common.dll</Link> - </EmbeddedResource> - </ItemGroup> - <ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> - <EmbeddedResource Include="$(SolutionDir)\Win32\Debug\ignite.common.dll"> - <Link>resources\debug\x86\ignite.common.dll</Link> - </EmbeddedResource> - </ItemGroup> - <ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> - <EmbeddedResource Include="$(SolutionDir)\Win32\Release\ignite.common.dll"> - <Link>resources\release\x86\ignite.common.dll</Link> - </EmbeddedResource> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheAtomicUpdateTimeoutException.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheAtomicUpdateTimeoutException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheAtomicUpdateTimeoutException.cs deleted file mode 100644 index f0b5987..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheAtomicUpdateTimeoutException.cs +++ /dev/null @@ -1,67 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Runtime.Serialization; - - /// <summary> - /// Indicates atomic operation timeout. - /// </summary> - [Serializable] - public class CacheAtomicUpdateTimeoutException : CacheException - { - /// <summary> - /// Initializes a new instance of the <see cref="CacheAtomicUpdateTimeoutException"/> class. - /// </summary> - public CacheAtomicUpdateTimeoutException() - { - // No-op. - } - - - /// <summary> - /// Initializes a new instance of the <see cref="CacheAtomicUpdateTimeoutException"/> class. - /// </summary> - /// <param name="message">The message that describes the error.</param> - public CacheAtomicUpdateTimeoutException(string message) : base(message) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheAtomicUpdateTimeoutException"/> class. - /// </summary> - /// <param name="message">The message.</param> - /// <param name="cause">The cause.</param> - public CacheAtomicUpdateTimeoutException(string message, Exception cause) : base(message, cause) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheAtomicUpdateTimeoutException"/> class. - /// </summary> - /// <param name="info">Serialization information.</param> - /// <param name="ctx">Streaming context.</param> - protected CacheAtomicUpdateTimeoutException(SerializationInfo info, StreamingContext ctx) : base(info, ctx) - { - // No-op. - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheEntryProcessorException.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheEntryProcessorException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheEntryProcessorException.cs deleted file mode 100644 index 341c713..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheEntryProcessorException.cs +++ /dev/null @@ -1,79 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Runtime.Serialization; - using Apache.Ignite.Core.Common; - - /// <summary> - /// An exception to indicate a problem occurred attempting to execute an - /// <see cref="ICacheEntryProcessor{K, V, A, R}"/> against an entry. - /// </summary> - [Serializable] - public class CacheEntryProcessorException : IgniteException - { - /// <summary> - /// Initializes a new instance of the <see cref="CacheEntryProcessorException"/> class. - /// </summary> - public CacheEntryProcessorException() - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheEntryProcessorException"/> class. - /// </summary> - /// <param name="message">The message that describes the error.</param> - public CacheEntryProcessorException(string message) : base(message) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheEntryProcessorException"/> class. - /// </summary> - /// <param name="message">The message.</param> - /// <param name="cause">The cause.</param> - public CacheEntryProcessorException(string message, Exception cause) - : base(message, cause) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheEntryProcessorException"/> class. - /// </summary> - /// <param name="innerException">The inner exception.</param> - public CacheEntryProcessorException(Exception innerException) - : base("Error occurred in CacheEntryProcessor, see InnerException for details.", innerException) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheEntryProcessorException"/> class. - /// </summary> - /// <param name="info">Serialization information.</param> - /// <param name="ctx">Streaming context.</param> - protected CacheEntryProcessorException(SerializationInfo info, StreamingContext ctx) : base(info, ctx) - { - // No-op. - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheException.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheException.cs deleted file mode 100644 index c00f115..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CacheException.cs +++ /dev/null @@ -1,68 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Runtime.Serialization; - using Apache.Ignite.Core.Common; - - /// <summary> - /// Indicates an error during Cache operation. - /// </summary> - [Serializable] - public class CacheException : IgniteException - { - /// <summary> - /// Initializes a new instance of the <see cref="CacheException"/> class. - /// </summary> - public CacheException() - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheException"/> class. - /// </summary> - /// <param name="message">The message that describes the error.</param> - public CacheException(string message) : base(message) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheException"/> class. - /// </summary> - /// <param name="message">The message.</param> - /// <param name="cause">The cause.</param> - public CacheException(string message, Exception cause) : base(message, cause) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CacheException"/> class. - /// </summary> - /// <param name="info">Serialization information.</param> - /// <param name="ctx">Streaming context.</param> - protected CacheException(SerializationInfo info, StreamingContext ctx) - : base(info, ctx) - { - // No-op. - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePartialUpdateException.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePartialUpdateException.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePartialUpdateException.cs deleted file mode 100644 index b3ed537..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePartialUpdateException.cs +++ /dev/null @@ -1,119 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.Serialization; - - /// <summary> - /// Exception thrown from non-transactional cache in case when update succeeded only partially. - /// </summary> - [Serializable] - public class CachePartialUpdateException : CacheException - { - /** Serializer key. */ - private const string KeyFailedKeys = "FailedKeys"; - - /** Failed keys. */ - private readonly IList<object> _failedKeys; - - /** Failed keys exception. */ - private readonly Exception _failedKeysException; - - /// <summary> - /// Initializes a new instance of the <see cref="CachePartialUpdateException"/> class. - /// </summary> - public CachePartialUpdateException() - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CachePartialUpdateException"/> class. - /// </summary> - /// <param name="message">The message that describes the error.</param> - public CachePartialUpdateException(string message) : base(message) - { - // No-op. - } - - /// <summary> - /// Initializes a new instance of the <see cref="CachePartialUpdateException"/> class. - /// </summary> - /// <param name="info">Serialization information.</param> - /// <param name="ctx">Streaming context.</param> - protected CachePartialUpdateException(SerializationInfo info, StreamingContext ctx) - : base(info, ctx) - { - _failedKeys = (IList<object>) info.GetValue(KeyFailedKeys, typeof (IList<object>)); - } - - /// <summary> - /// Constructor. - /// </summary> - /// <param name="msg">Exception message.</param> - /// <param name="failedKeysException">Exception occurred during failed keys read/write.</param> - public CachePartialUpdateException(string msg, Exception failedKeysException) : this(msg, null, failedKeysException) - { - // No-op. - } - - /// <summary> - /// Constructor. - /// </summary> - /// <param name="msg">Exception message.</param> - /// <param name="failedKeys">Failed keys.</param> - public CachePartialUpdateException(string msg, IList<object> failedKeys) : this(msg, failedKeys, null) - { - // No-op. - } - - /// <summary> - /// Constructor. - /// </summary> - /// <param name="msg">Exception message.</param> - /// <param name="failedKeys">Failed keys.</param> - /// <param name="failedKeysException">Exception occurred during failed keys read/write.</param> - private CachePartialUpdateException(string msg, IList<object> failedKeys, Exception failedKeysException) : base(msg) - { - _failedKeys = failedKeys; - _failedKeysException = failedKeysException; - } - - /// <summary> - /// Gets the failed keys. - /// </summary> - public IEnumerable<T> GetFailedKeys<T>() - { - if (_failedKeysException != null) - throw _failedKeysException; - - return _failedKeys == null ? null : _failedKeys.Cast<T>(); - } - - /** <inheritdoc /> */ - public override void GetObjectData(SerializationInfo info, StreamingContext context) - { - info.AddValue(KeyFailedKeys, _failedKeys); - - base.GetObjectData(info, context); - } - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePeekMode.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePeekMode.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePeekMode.cs deleted file mode 100644 index 0a089ad..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/CachePeekMode.cs +++ /dev/null @@ -1,68 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Diagnostics.CodeAnalysis; - - /// <summary> - /// Enumeration of all supported cache peek modes. - /// </summary> - [Flags] - [SuppressMessage("Microsoft.Naming", "CA1714:FlagsEnumsShouldHavePluralNames")] - public enum CachePeekMode - { - /// <summary> - /// Peeks into all available cache storages. - /// </summary> - All = 0x01, - - /// <summary> - /// Peek into near cache only (don't peek into partitioned cache). - /// In case of LOCAL cache, behaves as <see cref="All"/> mode. - /// </summary> - Near = 0x02, - - /// <summary> - /// Peek value from primary copy of partitioned cache only (skip near cache). - /// In case of LOCAL cache, behaves as <see cref="All"/> mode. - /// </summary> - Primary = 0x04, - - /// <summary> - /// Peek value from backup copies of partitioned cache only (skip near cache). - /// In case of LOCAL cache, behaves as <see cref="All"/> mode. - /// </summary> - Backup = 0x08, - - /// <summary> - /// Peeks value from the on-heap storage only. - /// </summary> - Onheap = 0x10, - - /// <summary> - /// Peeks value from the off-heap storage only, without loading off-heap value into cache. - /// </summary> - Offheap = 0x20, - - /// <summary> - /// Peeks value from the swap storage only, without loading swapped value into cache. - /// </summary> - Swap = 0x40 - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/CacheEntryEventType.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/CacheEntryEventType.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/CacheEntryEventType.cs deleted file mode 100644 index 8339257..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/CacheEntryEventType.cs +++ /dev/null @@ -1,41 +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. - */ - -namespace Apache.Ignite.Core.Cache.Event -{ - /// <summary> - /// Cache event type. - /// </summary> - public enum CacheEntryEventType - { - /// <summary> - /// An event type indicating that the cache entry was created. - /// </summary> - Created, - - /// <summary> - /// An event type indicating that the cache entry was updated. i.e. a previous - /// mapping existed. - /// </summary> - Updated, - - /// <summary> - /// An event type indicating that the cache entry was removed. - /// </summary> - Removed - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEvent.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEvent.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEvent.cs deleted file mode 100644 index 9c2665e..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEvent.cs +++ /dev/null @@ -1,40 +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. - */ - -namespace Apache.Ignite.Core.Cache.Event -{ - /// <summary> - /// Cache entry event. - /// </summary> - public interface ICacheEntryEvent<TK, TV> : ICacheEntry<TK, TV> - { - /// <summary> - /// Event type. - /// </summary> - CacheEntryEventType EventType { get; } - - /// <summary> - /// Gets old the value. - /// </summary> - TV OldValue { get; } - - /// <summary> - /// Whether old value exists. - /// </summary> - bool HasOldValue { get; } - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventFilter.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventFilter.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventFilter.cs deleted file mode 100644 index 98f5c5a..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventFilter.cs +++ /dev/null @@ -1,31 +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. - */ - -namespace Apache.Ignite.Core.Cache.Event -{ - /// <summary> - /// Cache entry event filter. - /// </summary> - public interface ICacheEntryEventFilter<TK, TV> - { - /// <summary> - /// Evaluates cache entry event. - /// </summary> - /// <param name="evt">Event.</param> - bool Evaluate(ICacheEntryEvent<TK, TV> evt); - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventListener.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventListener.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventListener.cs deleted file mode 100644 index 76ae04c..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Event/ICacheEntryEventListener.cs +++ /dev/null @@ -1,33 +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. - */ - -namespace Apache.Ignite.Core.Cache.Event -{ - using System.Collections.Generic; - - /// <summary> - /// Cache entry event listener. - /// </summary> - public interface ICacheEntryEventListener<TK, TV> - { - /// <summary> - /// Event callback. - /// </summary> - /// <param name="evts">Events.</param> - void OnEvent(IEnumerable<ICacheEntryEvent<TK, TV>> evts); - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/ExpiryPolicy.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/ExpiryPolicy.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/ExpiryPolicy.cs deleted file mode 100644 index 1feccbd..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/ExpiryPolicy.cs +++ /dev/null @@ -1,89 +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. - */ - -namespace Apache.Ignite.Core.Cache.Expiry -{ - using System; - - /// <summary> - /// Default expiry policy implementation with all durations deinfed explicitly. - /// </summary> - public class ExpiryPolicy : IExpiryPolicy - { - /** Expiry for create. */ - private readonly TimeSpan? _create; - - /** Expiry for update. */ - private readonly TimeSpan? _update; - - /** Expiry for access. */ - private readonly TimeSpan? _access; - - /// <summary> - /// Constructor. - /// </summary> - /// <param name="create">Expiry for create.</param> - /// <param name="update">Expiry for udpate.</param> - /// <param name="access">Expiry for access.</param> - public ExpiryPolicy(TimeSpan? create, TimeSpan? update, TimeSpan? access) - { - _create = create; - _update = update; - _access = access; - } - - /// <summary> - /// Gets expiry for create operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired - /// and will not be added to cache. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for create opeartion.</returns> - public TimeSpan? GetExpiryForCreate() - { - return _create; - } - - /// <summary> - /// Gets expiry for update operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for update operation.</returns> - public TimeSpan? GetExpiryForUpdate() - { - return _update; - } - - /// <summary> - /// Gets expiry for access operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for access operation.</returns> - public TimeSpan? GetExpiryForAccess() - { - return _access; - } - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/IExpiryPolicy.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/IExpiryPolicy.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/IExpiryPolicy.cs deleted file mode 100644 index ff627ae..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/Expiry/IExpiryPolicy.cs +++ /dev/null @@ -1,59 +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. - */ - -namespace Apache.Ignite.Core.Cache.Expiry -{ - using System; - - /// <summary> - /// Defines functions to determine when cache entries will expire based on - /// creation, access and modification operations. - /// </summary> - public interface IExpiryPolicy - { - /// <summary> - /// Gets expiry for create operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired - /// and will not be added to cache. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for create opeartion.</returns> - TimeSpan? GetExpiryForCreate(); - - /// <summary> - /// Gets expiry for update operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for update operation.</returns> - TimeSpan? GetExpiryForUpdate(); - - /// <summary> - /// Gets expiry for access operation. - /// <para /> - /// If <c>TimeSpan.ZERO</c> is returned, cache entry is considered immediately expired. - /// <para /> - /// If <c>null</c> is returned, no change to previously understood expiry is performed. - /// </summary> - /// <returns>Expiry for access operation.</returns> - TimeSpan? GetExpiryForAccess(); - } -} http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/ICache.cs ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/ICache.cs b/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/ICache.cs deleted file mode 100644 index 5116839..0000000 --- a/modules/platform/src/main/dotnet/Apache.Ignite.Core/Cache/ICache.cs +++ /dev/null @@ -1,542 +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. - */ - -namespace Apache.Ignite.Core.Cache -{ - using System; - using System.Collections; - using System.Collections.Generic; - using Apache.Ignite.Core.Cache.Expiry; - using Apache.Ignite.Core.Cache.Query; - using Apache.Ignite.Core.Cache.Query.Continuous; - using Apache.Ignite.Core.Cache.Store; - using Apache.Ignite.Core.Common; - using Apache.Ignite.Core.Transactions; - - /// <summary> - /// Main entry point for Ignite cache APIs. You can get a named cache by calling - /// <see cref="IIgnite.GetCache{TK,TV}"/> method. - /// <para /> - /// Cache API supports distributed transactions. All <c>Get(...)</c>, <c>Put(...)</c>, <c>Replace(...)</c>, - /// and <c>Remove(...)</c> operations are transactional and will participate in an ongoing transaction, - /// if any. Other methods like <c>Peek(...)</c> or various <c>Contains(...)</c> methods may - /// be transaction-aware, i.e. check in-transaction entries first, but will not affect the current - /// state of transaction. See <see cref="ITransaction"/> documentation for more information - /// about transactions. - /// <para /> - /// Neither <c>null</c> keys or values are allowed to be stored in cache. If a <c>null</c> value - /// happens to be in cache (e.g. after invalidation or remove), then cache will treat this case - /// as there is no value at all. - /// <para /> - /// Note that cache is generic and you can only work with provided key and value types. If cache also - /// contains keys or values of other types, any attempt to retrieve them will result in - /// <see cref="InvalidCastException"/>. Use <see cref="ICache{Object, Object}"/> in order to work with entries - /// of arbitrary types. - /// <para/> - /// All members are thread-safe and may be used concurrently from multiple threads. - /// </summary> - /// <typeparam name="TK">Key type.</typeparam> - /// <typeparam name="TV">Value type.</typeparam> - public interface ICache<TK, TV> : IAsyncSupport<ICache<TK, TV>>, IEnumerable<ICacheEntry<TK, TV>> - { - /// <summary> - /// Name of this cache (<c>null</c> for default cache). - /// </summary> - string Name { get; } - - /// <summary> - /// Ignite hosting this cache. - /// </summary> - IIgnite Ignite { get; } - - /// <summary> - /// Checks whether this cache contains no key-value mappings. - /// <para /> - /// Semantically equals to <c>ICache.Size(CachePeekMode.PRIMARY) == 0</c>. - /// </summary> - bool IsEmpty(); - - /// <summary> - /// Gets a value indicating whether to keep values in portable form. - /// </summary> - bool IsKeepPortable { get; } - - /// <summary> - /// Get another cache instance with read-through and write-through behavior disabled. - /// </summary> - /// <returns>Cache with read-through and write-through behavior disabled.</returns> - ICache<TK, TV> WithSkipStore(); - - /// <summary> - /// Returns cache with the specified expired policy set. This policy will be used for each operation - /// invoked on the returned cache. - /// <para /> - /// Expiry durations for each operation are calculated only once and then used as constants. Please - /// consider this when implementing customg expiry policy implementations. - /// </summary> - /// <param name="plc">Expiry policy to use.</param> - /// <returns>Cache instance with the specified expiry policy set.</returns> - ICache<TK, TV> WithExpiryPolicy(IExpiryPolicy plc); - - /// <summary> - /// Gets cache with KeepPortable mode enabled, changing key and/or value types if necessary. - /// You can only change key/value types when transitioning from non-portable to portable cache; - /// Changing type of portable cache is not allowed and will throw an <see cref="InvalidOperationException"/> - /// </summary> - /// <typeparam name="TK1">Key type in portable mode.</typeparam> - /// <typeparam name="TV1">Value type in protable mode.</typeparam> - /// <returns>Cache instance with portable mode enabled.</returns> - ICache<TK1, TV1> WithKeepPortable<TK1, TV1>(); - - /// <summary> - /// Executes <see cref="LocalLoadCache"/> on all cache nodes. - /// </summary> - /// <param name="p"> - /// Optional predicate. If provided, will be used to filter values to be put into cache. - /// </param> - /// <param name="args"> - /// Optional user arguments to be passed into <see cref="ICacheStore.LoadCache" />. - /// </param> - [AsyncSupported] - void LoadCache(ICacheEntryFilter<TK, TV> p, params object[] args); - - /// <summary> - /// Delegates to <see cref="ICacheStore.LoadCache" /> method to load state - /// from the underlying persistent storage. The loaded values will then be given - /// to the optionally passed in predicate, and, if the predicate returns true, - /// will be stored in cache. If predicate is null, then all loaded values will be stored in cache. - /// </summary> - /// <param name="p"> - /// Optional predicate. If provided, will be used to filter values to be put into cache. - /// </param> - /// <param name="args"> - /// Optional user arguments to be passed into <see cref="ICacheStore.LoadCache" />. - /// </param> - [AsyncSupported] - void LocalLoadCache(ICacheEntryFilter<TK, TV> p, params object[] args); - - /// <summary> - /// Check if cache contains mapping for this key. - /// </summary> - /// <param name="key">Key.</param> - /// <returns>True if cache contains mapping for this key.</returns> - [AsyncSupported] - bool ContainsKey(TK key); - - /// <summary> - /// Check if cache contains mapping for these keys. - /// </summary> - /// <param name="keys">Keys.</param> - /// <returns>True if cache contains mapping for all these keys.</returns> - [AsyncSupported] - bool ContainsKeys(IEnumerable<TK> keys); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key.</param> - /// <param name="modes">Peek modes.</param> - /// <returns>Peeked value.</returns> - TV LocalPeek(TK key, params CachePeekMode[] modes); - - /// <summary> - /// 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 disable, 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. - /// </summary> - /// <param name="key">Key.</param> - /// <returns>Value.</returns> - [AsyncSupported] - TV Get(TK key); - - /// <summary> - /// 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. - /// </summary> - /// <param name="keys">Keys.</param> - /// <returns>Map of key-value pairs.</returns> - [AsyncSupported] - IDictionary<TK, TV> GetAll(IEnumerable<TK> keys); - - /// <summary> - /// Associates the specified value with the specified key in the cache. - /// <para /> - /// If the cache previously contained a mapping for the key, - /// the old value is replaced by the specified value. - /// </summary> - /// <param name="key">Key with which the specified value is to be associated.</param> - /// <param name="val">Value to be associated with the specified key.</param> - [AsyncSupported] - void Put(TK key, TV val); - - /// <summary> - /// Associates the specified value with the specified key in this cache, - /// returning an existing value if one existed. - /// </summary> - /// <param name="key">Key with which the specified value is to be associated.</param> - /// <param name="val">Value to be associated with the specified key.</param> - /// <returns> - /// The value associated with the key at the start of the operation or null if none was associated. - /// </returns> - [AsyncSupported] - TV GetAndPut(TK key, TV val); - - /// <summary> - /// Atomically replaces the value for a given key if and only if there is a value currently mapped by the key. - /// </summary> - /// <param name="key">Key with which the specified value is to be associated.</param> - /// <param name="val">Value to be associated with the specified key.</param> - /// <returns> - /// The previous value associated with the specified key, or null if there was no mapping for the key. - /// </returns> - [AsyncSupported] - TV GetAndReplace(TK key, TV val); - - /// <summary> - /// Atomically removes the entry for a key only if currently mapped to some value. - /// </summary> - /// <param name="key">Key with which the specified value is associated.</param> - /// <returns>The value if one existed or null if no mapping existed for this key.</returns> - [AsyncSupported] - TV GetAndRemove(TK key); - - /// <summary> - /// Atomically associates the specified key with the given value if it is not already associated with a value. - /// </summary> - /// <param name="key">Key with which the specified value is to be associated.</param> - /// <param name="val">Value to be associated with the specified key.</param> - /// <returns>True if a value was set.</returns> - [AsyncSupported] - bool PutIfAbsent(TK key, TV val); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key to store in cache.</param> - /// <param name="val">Value to be associated with the given key.</param> - /// <returns> - /// Previously contained value regardless of whether put happened or not (null if there was no previous value). - /// </returns> - [AsyncSupported] - TV GetAndPutIfAbsent(TK key, TV val); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key to store in cache.</param> - /// <param name="val">Value to be associated with the given key.</param> - /// <returns>True if the value was replaced.</returns> - [AsyncSupported] - bool Replace(TK key, TV val); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key to store in cache.</param> - /// <param name="oldVal">Old value to match.</param> - /// <param name="newVal">Value to be associated with the given key.</param> - /// <returns>True if replace happened, false otherwise.</returns> - [AsyncSupported] - bool Replace(TK key, TV oldVal, TV newVal); - - /// <summary> - /// 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. - /// </summary> - /// <param name="vals">Key-value pairs to store in cache.</param> - [AsyncSupported] - void PutAll(IDictionary<TK, TV> vals); - - /// <summary> - /// 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). - /// </summary> - /// <param name="keys">Keys to evict from cache.</param> - void LocalEvict(IEnumerable<TK> keys); - - /// <summary> - /// Clears the contents of the cache, without notifying listeners or CacheWriters. - /// </summary> - [AsyncSupported] - void Clear(); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key to clear.</param> - [AsyncSupported] - void Clear(TK key); - - /// <summary> - /// 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. - /// </summary> - /// <param name="keys">Keys to clear.</param> - [AsyncSupported] - void ClearAll(IEnumerable<TK> keys); - - /// <summary> - /// 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. - /// <para /> - /// Note that this operation is local as it merely clears - /// an entry from local cache, it does not remove entries from remote caches. - /// </summary> - /// <param name="key">Key to clear.</param> - void LocalClear(TK key); - - /// <summary> - /// 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. - /// <para /> - /// Note that this operation is local as it merely clears - /// entries from local cache, it does not remove entries from remote caches. - /// </summary> - /// <param name="keys">Keys to clear.</param> - void LocalClearAll(IEnumerable<TK> keys); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key whose mapping is to be removed from cache.</param> - /// <returns>False if there was no matching key.</returns> - [AsyncSupported] - bool Remove(TK key); - - /// <summary> - /// 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. - /// </summary> - /// <param name="key">Key whose mapping is to be removed from cache.</param> - /// <param name="val">Value to match against currently cached value.</param> - /// <returns>True if entry was removed, false otherwise.</returns> - [AsyncSupported] - bool Remove(TK key, TV val); - - /// <summary> - /// 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. - /// </summary> - /// <param name="keys">Keys whose mappings are to be removed from cache.</param> - [AsyncSupported] - void RemoveAll(IEnumerable<TK> keys); - - /// <summary> - /// 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. - /// </summary> - [AsyncSupported] - void RemoveAll(); - - /// <summary> - /// Gets the number of all entries cached on this node. - /// </summary> - /// <param name="modes">Optional peek modes. If not provided, then total cache size is returned.</param> - /// <returns>Cache size on this node.</returns> - int GetLocalSize(params CachePeekMode[] modes); - - /// <summary> - /// Gets the number of all entries cached across all nodes. - /// <para /> - /// NOTE: this operation is distributed and will query all participating nodes for their cache sizes. - /// </summary> - /// <param name="modes">Optional peek modes. If not provided, then total cache size is returned.</param> - /// <returns>Cache size across all nodes.</returns> - [AsyncSupported] - int GetSize(params CachePeekMode[] modes); - - /// <summary> - /// This method unswaps cache entries by given keys, if any, from swap storage into memory. - /// </summary> - /// <param name="keys">Keys to promote entries for.</param> - void LocalPromote(IEnumerable<TK> keys); - - /// <summary> - /// Queries cache. - /// </summary> - /// <param name="qry">Query.</param> - /// <returns>Cursor.</returns> - IQueryCursor<ICacheEntry<TK, TV>> Query(QueryBase qry); - - /// <summary> - /// Queries separate entry fields. - /// </summary> - /// <param name="qry">SQL fields query.</param> - /// <returns>Cursor.</returns> - IQueryCursor<IList> QueryFields(SqlFieldsQuery qry); - - /// <summary> - /// Start continuous query execution. - /// </summary> - /// <param name="qry">Continuous query.</param> - /// <returns>Handle to stop query execution.</returns> - IContinuousQueryHandle QueryContinuous(ContinuousQuery<TK, TV> qry); - - /// <summary> - /// Start continuous query execution. - /// </summary> - /// <param name="qry">Continuous query.</param> - /// <param name="initialQry"> - /// The initial query. This query will be executed before continuous listener is registered which allows - /// to iterate through entries which have already existed at the time continuous query is executed. - /// </param> - /// <returns> - /// Handle to get initial query cursor or stop query execution. - /// </returns> - IContinuousQueryHandle<ICacheEntry<TK, TV>> QueryContinuous(ContinuousQuery<TK, TV> qry, QueryBase initialQry); - - /// <summary> - /// Get local cache entries. - /// </summary> - /// <param name="peekModes">Peek modes.</param> - /// <returns>Enumerable instance.</returns> - IEnumerable<ICacheEntry<TK, TV>> GetLocalEntries(params CachePeekMode[] peekModes); - - /// <summary> - /// Invokes an <see cref="ICacheEntryProcessor{K, V, A, R}"/> against the - /// <see cref="IMutableCacheEntry{K, V}"/> specified by the provided key. - /// If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) - /// or a surrogate entry, consisting of the key with a null value is used instead. - /// </summary> - /// <typeparam name="TR">The type of the result.</typeparam> - /// <typeparam name="TA">The type of the argument.</typeparam> - /// <param name="key">The key.</param> - /// <param name="processor">The processor.</param> - /// <param name="arg">The argument.</param> - /// <returns>Result of the processing.</returns> - /// <exception cref="CacheEntryProcessorException">If an exception has occured during processing.</exception> - [AsyncSupported] - TR Invoke<TR, TA>(TK key, ICacheEntryProcessor<TK, TV, TA, TR> processor, TA arg); - - /// <summary> - /// Invokes an <see cref="ICacheEntryProcessor{K, V, A, R}"/> against a set of keys. - /// If an entry does not exist for the specified key, an attempt is made to load it (if a loader is configured) - /// or a surrogate entry, consisting of the key with a null value is used instead. - /// - /// The order that the entries for the keys are processed is undefined. - /// Implementations may choose to process the entries in any order, including concurrently. - /// Furthermore there is no guarantee implementations will use the same processor instance - /// to process each entry, as the case may be in a non-local cache topology. - /// </summary> - /// <typeparam name="TR">The type of the result.</typeparam> - /// <typeparam name="TA">The type of the argument.</typeparam> - /// <param name="keys">The keys.</param> - /// <param name="processor">The processor.</param> - /// <param name="arg">The argument.</param> - /// <returns> - /// Map of <see cref="ICacheEntryProcessorResult{R}" /> of the processing per key, if any, - /// defined by the <see cref="ICacheEntryProcessor{K,V,A,R}"/> implementation. - /// No mappings will be returned for processors that return a null value for a key. - /// </returns> - /// <exception cref="CacheEntryProcessorException">If an exception has occured during processing.</exception> - [AsyncSupported] - IDictionary<TK, ICacheEntryProcessorResult<TR>> InvokeAll<TR, TA>(IEnumerable<TK> keys, - ICacheEntryProcessor<TK, TV, TA, TR> processor, TA arg); - - /// <summary> - /// Creates an <see cref="ICacheLock"/> instance associated with passed key. - /// This method does not acquire lock immediately, you have to call appropriate method on returned instance. - /// </summary> - /// <param name="key">Key for lock.</param> - /// <returns>New <see cref="ICacheLock"/> instance associated with passed key.</returns> - ICacheLock Lock(TK key); - - /// <summary> - /// Creates an <see cref="ICacheLock"/> instance associated with passed keys. - /// This method does not acquire lock immediately, you have to call appropriate method on returned instance. - /// </summary> - /// <param name="keys">Keys for lock.</param> - /// <returns>New <see cref="ICacheLock"/> instance associated with passed keys.</returns> - ICacheLock LockAll(IEnumerable<TK> keys); - - /// <summary> - /// Checks if specified key is locked. - /// <para /> - /// This is a local operation and does not involve any network trips - /// or access to persistent storage in any way. - /// </summary> - /// <param name="key">Key to check.</param> - /// <param name="byCurrentThread"> - /// If true, checks that current thread owns a lock on this key; - /// otherwise, checks that any thread on any node owns a lock on this key. - /// </param> - /// <returns>True if specified key is locked; otherwise, false.</returns> - bool IsLocalLocked(TK key, bool byCurrentThread); - - /// <summary> - /// Gets snapshot metrics (statistics) for this cache. - /// </summary> - /// <returns>Cache metrics.</returns> - ICacheMetrics GetMetrics(); - - /// <summary> - /// Rebalances cache partitions. This method is usually used when rebalanceDelay configuration parameter - /// has non-zero value. When many nodes are started or stopped almost concurrently, - /// it is more efficient to delay rebalancing until the node topology is stable to make sure that no redundant - /// re-partitioning happens. - /// <para /> - /// In case of partitioned caches, for better efficiency user should usually make sure that new nodes get - /// placed on the same place of consistent hash ring as the left nodes, and that nodes are restarted before - /// rebalanceDelay expires. - /// </summary> - /// <returns>Future that will be completed when rebalancing is finished.</returns> - IFuture Rebalance(); - - /// <summary> - /// Get another cache instance with no-retries behavior enabled. - /// </summary> - /// <returns>Cache with no-retries behavior enabled.</returns> - ICache<TK, TV> WithNoRetries(); - } -}
