/// <summary> /// Get a named process setting /// </summary> /// <param name="pid">Process</param> /// <param name="name">Name of setting</param> /// <param name="prop">Name of property within the setting (for complex /// types, not value types)</param> /// <returns></returns> internal Option <T> GetProcessSetting <T>(ProcessId pid, string name, string prop, ProcessFlags flags) { var empty = HashMap <string, ValueToken>(); var settingsMaps = Seq( processSettings.Find(pid).Map(token => token.Settings).IfNone(empty), processSettings.Find(RolePid(pid)).Map(token => token.Settings).IfNone(empty), roleSettings, Cluster.Map(c => c.Settings).IfNone(empty)); return(GetSettingGeneral <T>(settingsMaps, ActorInboxCommon.ClusterSettingsKey(pid), name, prop, flags)); }
/// <summary> /// Get a named process setting /// </summary> /// <param name="pid">Process</param> /// <param name="name">Name of setting</param> /// <param name="prop">Name of property within the setting (for complex /// types, not value types)</param> /// <returns></returns> internal T GetProcessSetting <T>(ProcessId pid, string name, string prop, T defaultValue, ProcessFlags flags) { var empty = Map <string, ValueToken>(); var settingsMaps = new[] { processSettings.Find(pid).Map(token => token.Settings).IfNone(empty), processSettings.Find(RolePid(pid)).Map(token => token.Settings).IfNone(empty), roleSettings, Cluster.Map(c => c.Settings).IfNone(empty) }; return(GetSettingGeneral(settingsMaps, ActorInboxCommon.ClusterSettingsKey(pid), name, prop, defaultValue, flags)); }