Beispiel #1
0
        public FdbDynamicSubspacePartition Using([NotNull] IFdbKeyEncoding encoding)
        {
            Contract.NotNull(encoding, nameof(encoding));
            var encoder = encoding.GetDynamicEncoder();

            return(UsingEncoder(encoder));
        }
        public static IFdbDynamicSubspace CreateDynamic([NotNull] ITuple tuple, IFdbKeyEncoding encoding = null)
        {
            Contract.NotNull(tuple, nameof(tuple));
            var encoder = (encoding ?? TypeSystem.Default).GetDynamicEncoder();

            return(new FdbDynamicSubspace(tuple.ToSlice(), true, encoder));
        }
		static TypeSystem()
		{
			var tuples = new TupleKeyEncoding();
			Tuples = tuples;

			// default is the same a Tuples (for now?)
			Default = tuples;
		}
        static TypeSystem()
        {
            var tuples = new TupleKeyEncoding();

            Tuples = tuples;

            // default is the same a Tuples (for now?)
            Default = tuples;
        }
        /// <summary>Returns the same view but using a different Type System</summary>
        /// <param name="encoding">Type System that will code keys in this new view</param>
        /// <returns>Review that will partition this subspace using a different Type System</returns>
        /// <remarks>
        /// This should only be used for one-off usages where creating a new subspace just to encode one key would be overkill.
        /// If you are calling this in a loop, consider creating a new subspace using that encoding.
        /// </remarks>
        public FdbDynamicSubspacePartition Using([NotNull] IFdbKeyEncoding encoding)
        {
            if (encoding == null)
            {
                throw new ArgumentNullException("encoding");
            }
            var encoder = encoding.GetDynamicEncoder();

            return(UsingEncoder(encoder));
        }
        public static IFdbDynamicSubspace CreateDynamic([NotNull] IFdbTuple tuple, IFdbKeyEncoding encoding = null)
        {
            if (tuple == null)
            {
                throw new ArgumentNullException("tuple");
            }
            var encoder = (encoding ?? TypeSystem.Default).GetDynamicEncoder();

            return(new FdbDynamicSubspace(tuple.ToSlice(), true, encoder));
        }
        public static IFdbDynamicSubspace CreateDynamic <TKey>([NotNull] TKey key, IFdbKeyEncoding encoding = null)
            where TKey : IFdbKey
        {
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }
            var encoder = (encoding ?? TypeSystem.Default).GetDynamicEncoder();

            return(new FdbDynamicSubspace(key.ToFoundationDbKey(), encoder));
        }
Beispiel #8
0
 /// <summary>Return a version of this subspace, which uses a different type system to produces the keys and values</summary>
 /// <param name="subspace">Instance of a generic subspace</param>
 /// <param name="encoding">If non-null, uses this specific instance of the TypeSystem. If null, uses the default instance for this particular TypeSystem</param>
 /// <returns>Subspace equivalent to <paramref name="subspace"/>, but augmented with a specific TypeSystem</returns>
 public static IFdbDynamicSubspace Using([NotNull] this IFdbSubspace subspace, [NotNull] IFdbKeyEncoding encoding)
 {
     if (subspace == null)
     {
         throw new ArgumentNullException("subspace");
     }
     if (encoding == null)
     {
         throw new ArgumentNullException("encoding");
     }
     return(FdbSubspace.CopyDynamic(subspace, encoding));
 }
Beispiel #9
0
 public IFdbDynamicSubspace ByKey(T1 value1, T2 value2, IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateDynamic(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value1, value2)), encoding));
 }
Beispiel #10
0
 /// <summary>Return a version of this subspace, which uses a different type system to produces the keys and values</summary>
 /// <param name="subspace">Instance of a generic subspace</param>
 /// <param name="encoding">Custom key encoder</param>
 /// <returns>Subspace equivalent to <paramref name="subspace"/>, but augmented with a specific TypeSystem</returns>
 public static IFdbEncoderSubspace <T> UsingEncoder <T>([NotNull] this IFdbSubspace subspace, [NotNull] IFdbKeyEncoding encoding)
 {
     if (subspace == null)
     {
         throw new ArgumentNullException("subspace");
     }
     if (encoding == null)
     {
         throw new ArgumentNullException("encoding");
     }
     return(FdbSubspace.CopyEncoder <T>(subspace, encoding));
 }
        public static IFdbDynamicSubspace CopyDynamic([NotNull] IFdbSubspace subspace, IFdbKeyEncoding encoding = null)
        {
            var encoder = (encoding ?? TypeSystem.Default).GetDynamicEncoder();

            return(new FdbDynamicSubspace(subspace.Key, true, encoder));
        }
        public static IFdbEncoderSubspace <T1, T2, T3, T4> CopyEncoder <T1, T2, T3, T4>([NotNull] IFdbSubspace subspace, IFdbKeyEncoding encoding = null)
        {
            var encoder = (encoding ?? TypeSystem.Default).GetEncoder <T1, T2, T3, T4>();

            return(new FdbEncoderSubspace <T1, T2, T3, T4>(subspace.Key, true, encoder));
        }
Beispiel #13
0
 public static IFdbEncoderSubspace <T1, T2> UsingEncoder <T1, T2>([NotNull] this IFdbSubspace subspace, [NotNull] IFdbKeyEncoding encoding)
 {
     Contract.NotNull(subspace, nameof(subspace));
     Contract.NotNull(encoding, nameof(encoding));
     return(FdbSubspace.CopyEncoder <T1, T2>(subspace, encoding));
 }
Beispiel #14
0
 public IFdbDynamicSubspace ByKey(T1 value1, T2 value2, T3 value3, T4 value4, [NotNull] IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateDynamic(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value1, value2, value3, value4)), encoding));
 }
Beispiel #15
0
 public IFdbDynamicSubspace ByKey(T value, [NotNull] IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateDynamic(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value)), encoding));
 }
        public static IFdbDynamicSubspace CreateDynamic(Slice slice, IFdbKeyEncoding encoding = null)
        {
            var encoder = (encoding ?? TypeSystem.Default).GetDynamicEncoder();

            return(new FdbDynamicSubspace(slice, encoder));
        }
Beispiel #17
0
 public IFdbEncoderSubspace <TNext> ByKey <TNext>(T1 value1, T2 value2, IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateEncoder <TNext>(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value1, value2)), encoding));
 }
Beispiel #18
0
 public IFdbEncoderSubspace <TNext> ByKey <TNext>(T value, [NotNull] IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateEncoder <TNext>(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value)), encoding));
 }
        public static IFdbEncoderSubspace <T1, T2, T3, T4> CreateEncoder <T1, T2, T3, T4>(Slice slice, IFdbKeyEncoding encoding = null)
        {
            var encoder = (encoding ?? TypeSystem.Default).GetEncoder <T1, T2, T3, T4>();

            return(new FdbEncoderSubspace <T1, T2, T3, T4>(slice, encoder));
        }
Beispiel #20
0
 public IFdbEncoderSubspace <TNext> ByKey <TNext>(T1 value1, T2 value2, T3 value3, T4 value4, [NotNull] IFdbKeyEncoding encoding)
 {
     return(FdbSubspace.CreateEncoder <TNext>(this.Subspace.ConcatKey(this.Encoder.EncodeKey(value1, value2, value3, value4)), encoding));
 }
Beispiel #21
0
 public static IFdbDynamicSubspace Using([NotNull] this IFdbSubspace subspace, [NotNull] IFdbKeyEncoding encoding)
 {
     Contract.NotNull(subspace, nameof(subspace));
     Contract.NotNull(encoding, nameof(encoding));
     return(FdbSubspace.CopyDynamic(subspace, encoding));
 }