/// <summary> /// Initializes a new instance of the <see cref="ContinuousQueryFilterHolder"/> class. /// </summary> /// <param name="reader">The reader.</param> public ContinuousQueryFilterHolder(IBinaryReader reader) { var rawReader = (BinaryReader) reader.GetRawReader(); _filter = rawReader.ReadObject<object>(); _keepBinary = rawReader.ReadBoolean(); }
/// <summary> /// Initializes a new instance of the <see cref="ComputeFuncJob"/> class. /// </summary> /// <param name="reader">The reader.</param> public ComputeFuncJob(IBinaryReader reader) { var reader0 = (BinaryReader) reader.GetRawReader(); _clo = reader0.ReadObject<IComputeFunc>(); _arg = reader0.ReadObject<object>(); }
/// <summary> /// Initializes a new instance of the <see cref="SerializableObjectHolder"/> class. /// </summary> /// <param name="reader">The reader.</param> public SerializableObjectHolder(IBinaryReader reader) { Debug.Assert(reader != null); var reader0 = (BinaryReader) reader.GetRawReader(); _item = new BinaryFormatter().Deserialize(new BinaryStreamAdapter(reader0.Stream), null); }
/// <summary> /// Default ctor for marshalling. /// </summary> /// <param name="reader"></param> public ComputeJobHolder(IBinaryReader reader) { Debug.Assert(reader != null); var reader0 = (BinaryReader) reader.GetRawReader(); _ignite = reader0.Marshaller.Ignite; _job = reader0.ReadObject<IComputeJob>(); }
public void ReadBinary(IBinaryReader reader) { member.FromBinary(reader.GetRawReader()); }
/// <summary> /// Initializes a new instance of the <see cref="CacheEntryProcessorHolder"/> class. /// </summary> /// <param name="reader">The reader.</param> public CacheEntryProcessorHolder(IBinaryReader reader) { var reader0 = (BinaryReader) reader.GetRawReader(); _proc = reader0.ReadObject<object>(); _arg = reader0.ReadObject<object>(); _processFunc = GetProcessFunc(_proc); var kvTypes = DelegateTypeDescriptor.GetCacheEntryProcessorTypes(_proc.GetType()); _entryCtor = MutableCacheEntry.GetCtor(kvTypes.Item1, kvTypes.Item2); }
/// <summary> /// Initializes a new instance of the <see cref="CacheEntryFilterHolder"/> class. /// </summary> /// <param name="reader">The reader.</param> public CacheEntryFilterHolder(IBinaryReader reader) { var reader0 = (BinaryReader)reader.GetRawReader(); _pred = reader0.ReadObject<object>(); _keepBinary = reader0.ReadBoolean(); _marsh = reader0.Marshaller; _invoker = GetInvoker(_pred); }
/** <inheritdoc /> */ public void ReadBinary(IBinaryReader reader) { var r = reader.GetRawReader(); ThrowErr = r.ReadBoolean(); }
/** <inheritDoc /> */ public void ReadBinary(IBinaryReader reader) { A = reader.ReadInt("a"); B = reader.GetRawReader().ReadString(); }
/// <summary> /// Constructor. /// </summary> /// <param name="reader">The reader.</param> public DateTimeHolder(IBinaryReader reader) { Debug.Assert(reader != null); _item = DateTime.FromBinary(reader.GetRawReader().ReadLong()); }
/// <summary> /// Initializes a new instance of the <see cref="ComputeActionJob"/> class. /// </summary> /// <param name="reader">The reader.</param> public ComputeActionJob(IBinaryReader reader) { var reader0 = (BinaryReader)reader.GetRawReader(); _action = reader0.ReadObject<IComputeAction>(); }
public void ReadBinary(IBinaryReader reader) { Assert.AreEqual(1, reader.ReadByte("Byte")); Assert.AreEqual(new byte[] { 1 }, reader.ReadByteArray("ByteArray")); Assert.AreEqual('1', reader.ReadChar("Char")); Assert.AreEqual(new[] { '1' }, reader.ReadCharArray("CharArray")); Assert.AreEqual(1, reader.ReadShort("Short")); Assert.AreEqual(new short[] { 1 }, reader.ReadShortArray("ShortArray")); Assert.AreEqual(1, reader.ReadInt("Int")); Assert.AreEqual(new[] { 1 }, reader.ReadIntArray("IntArray")); Assert.AreEqual(1, reader.ReadLong("Long")); Assert.AreEqual(new long[] { 1 }, reader.ReadLongArray("LongArray")); Assert.AreEqual(true, reader.ReadBoolean("Boolean")); Assert.AreEqual(new[] { true }, reader.ReadBooleanArray("BooleanArray")); Assert.AreEqual(1, reader.ReadFloat("Float")); Assert.AreEqual(new float[] { 1 }, reader.ReadFloatArray("FloatArray")); Assert.AreEqual(1, reader.ReadDouble("Double")); Assert.AreEqual(new double[] { 1 }, reader.ReadDoubleArray("DoubleArray")); Assert.AreEqual(1, reader.ReadDecimal("Decimal")); Assert.AreEqual(null, reader.ReadDecimal("DecimalN")); Assert.AreEqual(new decimal?[] { 1 }, reader.ReadDecimalArray("DecimalArray")); Assert.AreEqual(Date, reader.ReadTimestamp("Timestamp")); Assert.AreEqual(new DateTime?[] { Date }, reader.ReadTimestampArray("TimestampArray")); Assert.AreEqual("1", reader.ReadString("String")); Assert.AreEqual(new[] { "1" }, reader.ReadStringArray("StringArray")); Assert.AreEqual(Guid, reader.ReadGuid("Guid")); Assert.AreEqual(null, reader.ReadGuid("GuidN")); Assert.AreEqual(new Guid?[] { Guid }, reader.ReadGuidArray("GuidArray")); Assert.AreEqual(MyEnum.Bar, reader.ReadEnum <MyEnum>("Enum")); Assert.AreEqual(new[] { MyEnum.Bar }, reader.ReadEnumArray <MyEnum>("EnumArray")); var raw = reader.GetRawReader(); Assert.AreEqual(1, raw.ReadByte()); Assert.AreEqual(new byte[] { 1 }, raw.ReadByteArray()); Assert.AreEqual('1', raw.ReadChar()); Assert.AreEqual(new[] { '1' }, raw.ReadCharArray()); Assert.AreEqual(1, raw.ReadShort()); Assert.AreEqual(new short[] { 1 }, raw.ReadShortArray()); Assert.AreEqual(1, raw.ReadInt()); Assert.AreEqual(new[] { 1 }, raw.ReadIntArray()); Assert.AreEqual(1, raw.ReadLong()); Assert.AreEqual(new long[] { 1 }, raw.ReadLongArray()); Assert.AreEqual(true, raw.ReadBoolean()); Assert.AreEqual(new[] { true }, raw.ReadBooleanArray()); Assert.AreEqual(1, raw.ReadFloat()); Assert.AreEqual(new float[] { 1 }, raw.ReadFloatArray()); Assert.AreEqual(1, raw.ReadDouble()); Assert.AreEqual(new double[] { 1 }, raw.ReadDoubleArray()); Assert.AreEqual(1, raw.ReadDecimal()); Assert.AreEqual(null, raw.ReadDecimal()); Assert.AreEqual(new decimal?[] { 1 }, raw.ReadDecimalArray()); Assert.AreEqual(Date, raw.ReadTimestamp()); Assert.AreEqual(new DateTime?[] { Date }, raw.ReadTimestampArray()); Assert.AreEqual("1", raw.ReadString()); Assert.AreEqual(new[] { "1" }, raw.ReadStringArray()); Assert.AreEqual(Guid, raw.ReadGuid()); Assert.AreEqual(null, raw.ReadGuid()); Assert.AreEqual(new Guid?[] { Guid }, raw.ReadGuidArray()); Assert.AreEqual(MyEnum.Bar, raw.ReadEnum <MyEnum>()); Assert.AreEqual(new[] { MyEnum.Bar }, raw.ReadEnumArray <MyEnum>()); }
public ComputeOutFuncJob(IBinaryReader reader) { var reader0 = (BinaryReader)reader.GetRawReader(); _clo = reader0.ReadObject <IComputeOutFunc>(); }
public void ReadBinary(IBinaryReader reader) { (member ?? (member = new T())).FromBinary(reader.GetRawReader()); }
public void ReadBinary(IBinaryReader reader) { Int = reader.ReadInt("Int"); Str = reader.GetRawReader().ReadString(); }
/** <inheritDoc /> */ public void ReadBinary(IBinaryReader reader) { Msg = reader.GetRawReader().ReadString(); }
public void ReadBinary(IBinaryReader reader) => FromBinary(reader.GetRawReader());
/// <summary> /// Invokes a store operation. /// </summary> /// <param name="input">Input stream.</param> /// <param name="cb">Callback.</param> /// <param name="grid">Grid.</param> /// <returns>Invocation result.</returns> /// <exception cref="IgniteException">Invalid operation type: + opType</exception> public int Invoke(IBinaryStream input, IUnmanagedTarget cb, Ignite grid) { IBinaryReader reader = grid.Marshaller.StartUnmarshal(input, _convertBinary ? BinaryMode.Deserialize : BinaryMode.ForceBinary); IBinaryRawReader rawReader = reader.GetRawReader(); int opType = rawReader.ReadByte(); // Setup cache sessoin for this invocation. long sesId = rawReader.ReadLong(); CacheStoreSession ses = grid.HandleRegistry.Get <CacheStoreSession>(sesId, true); ses.CacheName = rawReader.ReadString(); _sesProxy.SetSession(ses); try { // Perform operation. switch (opType) { case OpLoadCache: _store.LoadCache((k, v) => WriteObjects(cb, grid, k, v), rawReader.ReadArray <object>()); break; case OpLoad: object val = _store.Load(rawReader.ReadObject <object>()); if (val != null) { WriteObjects(cb, grid, val); } break; case OpLoadAll: var keys = rawReader.ReadCollection(); var result = _store.LoadAll(keys); foreach (DictionaryEntry entry in result) { WriteObjects(cb, grid, entry.Key, entry.Value); } break; case OpPut: _store.Write(rawReader.ReadObject <object>(), rawReader.ReadObject <object>()); break; case OpPutAll: var size = rawReader.ReadInt(); var dict = new Hashtable(size); for (int i = 0; i < size; i++) { dict[rawReader.ReadObject <object>()] = rawReader.ReadObject <object>(); } _store.WriteAll(dict); break; case OpRmv: _store.Delete(rawReader.ReadObject <object>()); break; case OpRmvAll: _store.DeleteAll(rawReader.ReadCollection()); break; case OpSesEnd: grid.HandleRegistry.Release(sesId); _store.SessionEnd(rawReader.ReadBoolean()); break; default: throw new IgniteException("Invalid operation type: " + opType); } return(0); } finally { _sesProxy.ClearSession(); } }
/** <inheritdoc /> */ public void ReadBinary(IBinaryReader reader) { _type = reader.GetRawReader().ReadInt(); }
/// <summary> /// Invokes a store operation. /// </summary> /// <param name="stream">Input stream.</param> /// <param name="grid">Grid.</param> /// <returns>Invocation result.</returns> /// <exception cref="IgniteException">Invalid operation type: + opType</exception> public int Invoke(IBinaryStream stream, Ignite grid) { IBinaryReader reader = grid.Marshaller.StartUnmarshal(stream, _convertBinary ? BinaryMode.Deserialize : BinaryMode.ForceBinary); IBinaryRawReader rawReader = reader.GetRawReader(); int opType = rawReader.ReadByte(); // Setup cache session for this invocation. long sesId = rawReader.ReadLong(); CacheStoreSession ses = grid.HandleRegistry.Get <CacheStoreSession>(sesId, true); // Session cache name may change in cross-cache transaction. // Single session is used for all stores in cross-cache transactions. ses.CacheName = rawReader.ReadString(); _sesProxy.SetSession(ses); try { // Perform operation. switch (opType) { case OpLoadCache: { var args = rawReader.ReadArray <object>(); stream.Seek(0, SeekOrigin.Begin); int cnt = 0; stream.WriteInt(cnt); // Reserve space for count. var writer = grid.Marshaller.StartMarshal(stream); _store.LoadCache((k, v) => { lock (writer) // User-defined store can be multithreaded. { writer.WriteObjectDetached(k); writer.WriteObjectDetached(v); cnt++; } }, args); stream.WriteInt(0, cnt); grid.Marshaller.FinishMarshal(writer); break; } case OpLoad: { var val = _store.Load(rawReader.ReadObject <TK>()); stream.Seek(0, SeekOrigin.Begin); var writer = grid.Marshaller.StartMarshal(stream); writer.WriteObject(val); grid.Marshaller.FinishMarshal(writer); break; } case OpLoadAll: { // We can't do both read and write lazily because stream is reused. // Read keys non-lazily, write result lazily. var keys = ReadAllKeys(rawReader); var result = _store.LoadAll(keys); stream.Seek(0, SeekOrigin.Begin); int cnt = 0; stream.WriteInt(cnt); // Reserve space for count. var writer = grid.Marshaller.StartMarshal(stream); foreach (var entry in result) { var entry0 = entry; // Copy modified closure. writer.WriteObjectDetached(entry0.Key); writer.WriteObjectDetached(entry0.Value); cnt++; } stream.WriteInt(0, cnt); grid.Marshaller.FinishMarshal(writer); break; } case OpPut: _store.Write(rawReader.ReadObject <TK>(), rawReader.ReadObject <TV>()); break; case OpPutAll: _store.WriteAll(ReadPairs(rawReader)); break; case OpRmv: _store.Delete(rawReader.ReadObject <TK>()); break; case OpRmvAll: _store.DeleteAll(ReadKeys(rawReader)); break; case OpSesEnd: { var commit = rawReader.ReadBoolean(); var last = rawReader.ReadBoolean(); if (last) { grid.HandleRegistry.Release(sesId); } _store.SessionEnd(commit); break; } default: throw new IgniteException("Invalid operation type: " + opType); } return(0); } finally { _sesProxy.ClearSession(); } }
public void ReadBinary(IBinaryReader reader) { Assert.AreEqual(1, reader.ReadByte("Byte")); Assert.AreEqual(new byte[] {1}, reader.ReadByteArray("ByteArray")); Assert.AreEqual('1', reader.ReadChar("Char")); Assert.AreEqual(new[] {'1'}, reader.ReadCharArray("CharArray")); Assert.AreEqual(1, reader.ReadShort("Short")); Assert.AreEqual(new short[] {1}, reader.ReadShortArray("ShortArray")); Assert.AreEqual(1, reader.ReadInt("Int")); Assert.AreEqual(new[] {1}, reader.ReadIntArray("IntArray")); Assert.AreEqual(1, reader.ReadLong("Long")); Assert.AreEqual(new long[] {1}, reader.ReadLongArray("LongArray")); Assert.AreEqual(true, reader.ReadBoolean("Boolean")); Assert.AreEqual(new[] {true}, reader.ReadBooleanArray("BooleanArray")); Assert.AreEqual(1, reader.ReadFloat("Float")); Assert.AreEqual(new float[] {1}, reader.ReadFloatArray("FloatArray")); Assert.AreEqual(1, reader.ReadDouble("Double")); Assert.AreEqual(new double[] {1}, reader.ReadDoubleArray("DoubleArray")); Assert.AreEqual(1, reader.ReadDecimal("Decimal")); Assert.AreEqual(new decimal?[] {1}, reader.ReadDecimalArray("DecimalArray")); Assert.AreEqual(Date, reader.ReadTimestamp("Timestamp")); Assert.AreEqual(new DateTime?[] {Date}, reader.ReadTimestampArray("TimestampArray")); Assert.AreEqual("1", reader.ReadString("String")); Assert.AreEqual(new[] {"1"}, reader.ReadStringArray("StringArray")); Assert.AreEqual(Guid, reader.ReadGuid("Guid")); Assert.AreEqual(new Guid?[] {Guid}, reader.ReadGuidArray("GuidArray")); Assert.AreEqual(MyEnum.Bar, reader.ReadEnum<MyEnum>("Enum")); Assert.AreEqual(new[] {MyEnum.Bar}, reader.ReadEnumArray<MyEnum>("EnumArray")); var raw = reader.GetRawReader(); Assert.AreEqual(1, raw.ReadByte()); Assert.AreEqual(new byte[] { 1 }, raw.ReadByteArray()); Assert.AreEqual('1', raw.ReadChar()); Assert.AreEqual(new[] { '1' }, raw.ReadCharArray()); Assert.AreEqual(1, raw.ReadShort()); Assert.AreEqual(new short[] { 1 }, raw.ReadShortArray()); Assert.AreEqual(1, raw.ReadInt()); Assert.AreEqual(new[] { 1 }, raw.ReadIntArray()); Assert.AreEqual(1, raw.ReadLong()); Assert.AreEqual(new long[] { 1 }, raw.ReadLongArray()); Assert.AreEqual(true, raw.ReadBoolean()); Assert.AreEqual(new[] { true }, raw.ReadBooleanArray()); Assert.AreEqual(1, raw.ReadFloat()); Assert.AreEqual(new float[] { 1 }, raw.ReadFloatArray()); Assert.AreEqual(1, raw.ReadDouble()); Assert.AreEqual(new double[] { 1 }, raw.ReadDoubleArray()); Assert.AreEqual(1, raw.ReadDecimal()); Assert.AreEqual(new decimal?[] { 1 }, raw.ReadDecimalArray()); Assert.AreEqual(Date, raw.ReadTimestamp()); Assert.AreEqual(new DateTime?[] { Date }, raw.ReadTimestampArray()); Assert.AreEqual("1", raw.ReadString()); Assert.AreEqual(new[] { "1" }, raw.ReadStringArray()); Assert.AreEqual(Guid, raw.ReadGuid()); Assert.AreEqual(new Guid?[] { Guid }, raw.ReadGuidArray()); Assert.AreEqual(MyEnum.Bar, raw.ReadEnum<MyEnum>()); Assert.AreEqual(new[] { MyEnum.Bar }, raw.ReadEnumArray<MyEnum>()); }
public void ReadBinary(IBinaryReader reader) { var method = typeof(FromToBinary).GetMethod("FromBinary", new[] { typeof(T), typeof(IBinaryRawReader) }); method.Invoke(null, new object[] { member ?? (member = new T()), reader.GetRawReader() }); }
/** <inheritDoc /> */ public void ReadBinary(IBinaryReader reader) { A = reader.ReadInt("a"); B = reader.GetRawReader().ReadInt(); }
/// <summary> /// Invokes a store operation. /// </summary> /// <param name="stream">Input stream.</param> /// <param name="grid">Grid.</param> /// <returns>Invocation result.</returns> /// <exception cref="IgniteException">Invalid operation type: + opType</exception> public int Invoke(IBinaryStream stream, Ignite grid) { IBinaryReader reader = grid.Marshaller.StartUnmarshal(stream, _convertBinary ? BinaryMode.Deserialize : BinaryMode.ForceBinary); IBinaryRawReader rawReader = reader.GetRawReader(); int opType = rawReader.ReadByte(); // Setup cache session for this invocation. long sesId = rawReader.ReadLong(); CacheStoreSession ses = grid.HandleRegistry.Get <CacheStoreSession>(sesId, true); ses.CacheName = rawReader.ReadString(); _sesProxy.SetSession(ses); try { // Perform operation. switch (opType) { case OpLoadCache: { var args = rawReader.ReadArray <object>(); stream.Seek(0, SeekOrigin.Begin); int cnt = 0; stream.WriteInt(cnt); // Reserve space for count. var writer = grid.Marshaller.StartMarshal(stream); _store.LoadCache((k, v) => { lock (writer) // User-defined store can be multithreaded. { writer.WithDetach(w => { w.WriteObject(k); w.WriteObject(v); }); cnt++; } }, args); stream.WriteInt(0, cnt); grid.Marshaller.FinishMarshal(writer); break; } case OpLoad: { var val = _store.Load(rawReader.ReadObject <object>()); stream.Seek(0, SeekOrigin.Begin); var writer = grid.Marshaller.StartMarshal(stream); writer.WriteObject(val); grid.Marshaller.FinishMarshal(writer); break; } case OpLoadAll: { var keys = rawReader.ReadCollection(); var result = _store.LoadAll(keys); stream.Seek(0, SeekOrigin.Begin); stream.WriteInt(result.Count); var writer = grid.Marshaller.StartMarshal(stream); foreach (DictionaryEntry entry in result) { var entry0 = entry; // Copy modified closure. writer.WithDetach(w => { w.WriteObject(entry0.Key); w.WriteObject(entry0.Value); }); } grid.Marshaller.FinishMarshal(writer); break; } case OpPut: _store.Write(rawReader.ReadObject <object>(), rawReader.ReadObject <object>()); break; case OpPutAll: var size = rawReader.ReadInt(); var dict = new Hashtable(size); for (int i = 0; i < size; i++) { dict[rawReader.ReadObject <object>()] = rawReader.ReadObject <object>(); } _store.WriteAll(dict); break; case OpRmv: _store.Delete(rawReader.ReadObject <object>()); break; case OpRmvAll: _store.DeleteAll(rawReader.ReadCollection()); break; case OpSesEnd: grid.HandleRegistry.Release(sesId); _store.SessionEnd(rawReader.ReadBoolean()); break; default: throw new IgniteException("Invalid operation type: " + opType); } return(0); } finally { _sesProxy.ClearSession(); } }