/// <summary> /// Initializes a new instance of the <see cref="ServiceDescriptor" /> class. /// </summary> /// <param name="name">Name.</param> /// <param name="reader">Reader.</param> /// <param name="services">Services.</param> public ServiceDescriptor(string name, PortableReaderImpl reader, IServices services) { Debug.Assert(reader != null); Debug.Assert(services != null); Debug.Assert(!string.IsNullOrEmpty(name)); _services = services; Name = name; CacheName = reader.ReadString(); MaxPerNodeCount = reader.ReadInt(); TotalCount = reader.ReadInt(); OriginNodeId = reader.ReadGuid() ?? Guid.Empty; AffinityKey = reader.ReadObject <object>(); var mapSize = reader.ReadInt(); var snap = new Dictionary <Guid, int>(mapSize); for (var i = 0; i < mapSize; i++) { snap[reader.ReadGuid() ?? Guid.Empty] = reader.ReadInt(); } TopologySnapshot = snap.AsReadOnly(); }
/** <inheritdoc /> */ protected override IList Read(PortableReaderImpl reader) { int cnt = reader.ReadInt(); var res = new ArrayList(cnt); for (int i = 0; i < cnt; i++) { res.Add(reader.ReadObject <object>()); } return(res); }
/// <summary> /// Initializes a new instance of the <see cref="ServiceDescriptor" /> class. /// </summary> /// <param name="name">Name.</param> /// <param name="reader">Reader.</param> /// <param name="services">Services.</param> public ServiceDescriptor(string name, PortableReaderImpl reader, IServices services) { Debug.Assert(reader != null); Debug.Assert(services != null); Debug.Assert(!string.IsNullOrEmpty(name)); _services = services; Name = name; CacheName = reader.ReadString(); MaxPerNodeCount = reader.ReadInt(); TotalCount = reader.ReadInt(); OriginNodeId = reader.ReadGuid() ?? Guid.Empty; AffinityKey = reader.ReadObject<object>(); var mapSize = reader.ReadInt(); var snap = new Dictionary<Guid, int>(mapSize); for (var i = 0; i < mapSize; i++) snap[reader.ReadGuid() ?? Guid.Empty] = reader.ReadInt(); TopologySnapshot = snap.AsReadOnly(); }
/// <summary> /// Reads nullable list. /// </summary> /// <param name="reader">Reader.</param> /// <returns>List.</returns> private static List <object> ReadNullableList(PortableReaderImpl reader) { if (!reader.ReadBoolean()) { return(null); } var size = reader.ReadInt(); var list = new List <object>(size); for (int i = 0; i < size; i++) { list.Add(reader.ReadObject <object>()); } return(list); }
/// <summary> /// Prepare lifecycle beans. /// </summary> /// <param name="reader">Reader.</param> /// <param name="outStream">Output stream.</param> /// <param name="handleRegistry">Handle registry.</param> private static void PrepareLifecycleBeans(PortableReaderImpl reader, PlatformMemoryStream outStream, HandleRegistry handleRegistry) { IList <LifecycleBeanHolder> beans = new List <LifecycleBeanHolder>(); // 1. Read beans defined in Java. int cnt = reader.ReadInt(); for (int i = 0; i < cnt; i++) { beans.Add(new LifecycleBeanHolder(CreateLifecycleBean(reader))); } // 2. Append beans definied in local configuration. ICollection <ILifecycleBean> nativeBeans = _startup.Configuration.LifecycleBeans; if (nativeBeans != null) { foreach (ILifecycleBean nativeBean in nativeBeans) { beans.Add(new LifecycleBeanHolder(nativeBean)); } } // 3. Write bean pointers to Java stream. outStream.WriteInt(beans.Count); foreach (LifecycleBeanHolder bean in beans) { outStream.WriteLong(handleRegistry.AllocateCritical(bean)); } outStream.SynchronizeOutput(); // 4. Set beans to STARTUP object. _startup.LifecycleBeans = beans; }
/// <summary> /// Reads nullable list. /// </summary> /// <param name="reader">Reader.</param> /// <returns>List.</returns> private static List<object> ReadNullableList(PortableReaderImpl reader) { if (!reader.ReadBoolean()) return null; var size = reader.ReadInt(); var list = new List<object>(size); for (int i = 0; i < size; i++) list.Add(reader.ReadObject<object>()); return list; }
/// <summary> /// Prepare lifecycle beans. /// </summary> /// <param name="reader">Reader.</param> /// <param name="outStream">Output stream.</param> /// <param name="handleRegistry">Handle registry.</param> private static void PrepareLifecycleBeans(PortableReaderImpl reader, PlatformMemoryStream outStream, HandleRegistry handleRegistry) { IList<LifecycleBeanHolder> beans = new List<LifecycleBeanHolder>(); // 1. Read beans defined in Java. int cnt = reader.ReadInt(); for (int i = 0; i < cnt; i++) beans.Add(new LifecycleBeanHolder(CreateLifecycleBean(reader))); // 2. Append beans definied in local configuration. ICollection<ILifecycleBean> nativeBeans = _startup.Configuration.LifecycleBeans; if (nativeBeans != null) { foreach (ILifecycleBean nativeBean in nativeBeans) beans.Add(new LifecycleBeanHolder(nativeBean)); } // 3. Write bean pointers to Java stream. outStream.WriteInt(beans.Count); foreach (LifecycleBeanHolder bean in beans) outStream.WriteLong(handleRegistry.AllocateCritical(bean)); outStream.SynchronizeOutput(); // 4. Set beans to STARTUP object. _startup.LifecycleBeans = beans; }