/// <summary> /// Creates interop cache store from a stream. /// </summary> /// <param name="memPtr">Memory pointer.</param> /// <param name="registry">The handle registry.</param> /// <returns> /// Interop cache store. /// </returns> internal static CacheStore CreateInstance(long memPtr, HandleRegistry registry) { using (var stream = IgniteManager.Memory.Get(memPtr).GetStream()) { var reader = BinaryUtils.Marshaller.StartUnmarshal(stream); var convertBinary = reader.ReadBoolean(); var factory = reader.ReadObject <IFactory <ICacheStore> >(); ICacheStore store; if (factory != null) { store = factory.CreateInstance(); } else { var className = reader.ReadString(); var propertyMap = reader.ReadDictionaryAsGeneric <string, object>(); store = IgniteUtils.CreateInstance <ICacheStore>(className); IgniteUtils.SetProperties(store, propertyMap); } return(new CacheStore(store, convertBinary, registry)); } }
/// <summary> /// Create lifecycle bean. /// </summary> /// <param name="reader">Reader.</param> /// <returns>Lifecycle bean.</returns> private static ILifecycleBean CreateLifecycleBean(BinaryReader reader) { // 1. Instantiate. var bean = IgniteUtils.CreateInstance <ILifecycleBean>(reader.ReadString()); // 2. Set properties. var props = reader.ReadDictionaryAsGeneric <string, object>(); IgniteUtils.SetProperties(bean, props); return(bean); }
/// <summary> /// Create lifecycle bean. /// </summary> /// <param name="reader">Reader.</param> /// <returns>Lifecycle bean.</returns> internal static ILifecycleBean CreateLifecycleBean(PortableReaderImpl reader) { // 1. Instantiate. string assemblyName = reader.ReadString(); string clsName = reader.ReadString(); object bean = IgniteUtils.CreateInstance(assemblyName, clsName); // 2. Set properties. IDictionary <string, object> props = reader.ReadGenericDictionary <string, object>(); IgniteUtils.SetProperties(bean, props); return(bean as ILifecycleBean); }
/// <summary> /// Creates interop cache store from a stream. /// </summary> /// <param name="memPtr">Memory pointer.</param> /// <param name="registry">The handle registry.</param> /// <returns> /// Interop cache store. /// </returns> internal static CacheStore CreateInstance(long memPtr, HandleRegistry registry) { using (var stream = IgniteManager.Memory.Get(memPtr).Stream()) { var reader = PortableUtils.Marshaller.StartUnmarshal(stream, PortableMode.KeepPortable); var assemblyName = reader.ReadString(); var className = reader.ReadString(); var convertPortable = reader.ReadBoolean(); var propertyMap = reader.ReadGenericDictionary <string, object>(); var store = (ICacheStore)IgniteUtils.CreateInstance(assemblyName, className); IgniteUtils.SetProperties(store, propertyMap); return(new CacheStore(store, convertPortable, registry)); } }