public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { //get { return(Request.TargetSettings.SettingNames(requester, depth)); } }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { return(PrologCLR.InvokeFromC( () => { if (IsEmpty(KeyGetter)) { return null; } List <string> names = new List <string>(); var plVar = PlTerm.PlVar(); var query = new PlQuery(Module, KeyGetter, new PlTermV(PrologCLR.ToProlog(requester), PlTerm.PlString(NameSpace), plVar)); while (query.NextSolution()) { string res = (string)query.Args[2]; if (!names.Contains(res)) { names.Add(res); } } return names.ToArray(); }, DiscardFrames)); }
public IEnumerable<string> SettingNames(ICollectionRequester requester, int depth) { //get { return new string[0]; /*throw new NotImplementedException(); */ } }
public void SetValue(ICollectionRequester requester, string name, object value) { if (Name == null) { return; } }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { //get { return(new string[0]); /*throw new NotImplementedException(); */ } }
static public IEnumerable <ICollectionProvider> GetProviders(ICollectionRequester requester, string namespaec) { var namespaec0 = ToKey(namespaec); var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { HashSet <object> sp = null; if (requester.SessionMananger != null) { sp = requester.SessionMananger.SkippedProviders; } var all = new List <ICollectionProvider>(); foreach (var nv in CollectionProviders) { var nsp = nv.NameSpace; if (!string.IsNullOrEmpty(nsp) && ToKey(nv.NameSpace) != namespaec0) { continue; } if (sp == null || !sp.Contains(nv)) { all.Add(nv); // sp.Add(nv); } } return(all); } }
public static bool AddSetting(ICollectionRequester requester, string namespac, string name, object valeu) { if (LoopingOn(namespac + "." + name, "update")) { return(false); } bool somethngTookIt = false; foreach (ICollectionProvider provider in GetProviders(requester, namespac)) { if (!HasSetting(requester, provider, name)) { if (!provider.AcceptsNewKeys) { continue; } } try { provider.SetValue(requester, name, valeu); somethngTookIt = true; } catch (Exception e) { DLRConsole.DebugWriteLine("AddSetting " + e); } } return(somethngTookIt); }
public ICollection GetGroup(ICollectionRequester requester, string name) { return(PrologCLR.InvokeFromC( () => { PlTerm callback = AllCallbacks.Args[0]; if (IsEmpty(callback)) { return null; } var plVar = PlTerm.PlVar(); List <object> results = new List <object>(); var query = new PlQuery("call", new PlTermV(callback, PlTerm.PlString(NameSpace), PlTerm.PlString(name), plVar)); while (query.NextSolution()) { object res = PrologCLR.GetInstance(query.Args[3]); if (!results.Contains(res)) { results.Add(res); } } return results.Count == 0 ? null : results; }, DiscardFrames)); }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { if (Name == null) { return(null); } return(new [] { Name }); }
public static IList <IKeyValuePair <string, object> > MakeKVP(ICollectionRequester requester, ICollectionProvider dict, int depth) { var list = new List <IKeyValuePair <string, object> >(); foreach (var p in dict.SettingNames(requester, depth)) { string key = p; list.Add(new SingleNameValue(p, () => AsCollection(dict.GetGroup(requester, key)))); } return(list); }
private static List<ICollectionProvider> FOCCollectionProviders(ICollectionRequester requester) { List<ICollectionProvider> providers; lock (_CollectionProviders) { if (!_CollectionProviders.TryGetValue(requester.RequesterID, out providers)) { return _CollectionProviders[requester.RequesterID] = new List<ICollectionProvider>(); } return providers; } }
private static Dictionary<string, ICollectionProvider> FOCCodeRegistrars(ICollectionRequester requester) { Dictionary<string, ICollectionProvider> providers; lock (_CodeRegistrars) { if (!_CodeRegistrars.TryGetValue(requester.RequesterID, out providers)) { return _CodeRegistrars[requester.RequesterID] = new Dictionary<string, ICollectionProvider>(); } return providers; } }
public static bool HasSetting(ICollectionRequester requester, ICollectionProvider provider, string name) { name = ToKey(name); foreach (var settingName in provider.SettingNames(requester, 1)) { if (ToKey(settingName) == name) { return(true); } } return(false); }
private static Dictionary <string, ICollectionProvider> FOCCodeRegistrars(ICollectionRequester requester) { Dictionary <string, ICollectionProvider> providers; lock (_CodeRegistrars) { if (!_CodeRegistrars.TryGetValue(requester.RequesterID, out providers)) { return(_CodeRegistrars[requester.RequesterID] = new Dictionary <string, ICollectionProvider>()); } return(providers); } }
private static List <ICollectionProvider> FOCCollectionProviders(ICollectionRequester requester) { List <ICollectionProvider> providers; lock (_CollectionProviders) { if (!_CollectionProviders.TryGetValue(requester.RequesterID, out providers)) { return(_CollectionProviders[requester.RequesterID] = new List <ICollectionProvider>()); } return(providers); } }
public ICollection GetGroup(ICollectionRequester requester, string name) { object val; lock (Dict) { if (Dict.TryGetValue(name, out val)) { return(SingleNameValue.AsCollection(val)); } } return(null); }
static public IEnumerable <string> GetNameSpaces(ICollectionRequester requester) { var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { var all = new HashSet <string>(); foreach (var nv in CollectionProviders) { all.Add(ToKey(nv.NameSpace)); } return(all); } }
public void SetValue(ICollectionRequester requester, string name, object value) { PrologCLR.InvokeFromC( () => { if (IsEmpty(Setter)) return false; var plVar = PlTerm.PlVar(); var query = new PlQuery(Module, Setter, new PlTermV(PrologCLR.ToProlog(requester), PlTerm.PlString(NameSpace), PlTerm.PlString(name), PrologCLR.ToProlog(value))); while (query.NextSolution()) { } return true; }, DiscardFrames); }
/// <summary> /// Returns an enumeration of Settings that Others have Overridden /// </summary> /// <param name="requester"></param> /// <param name="provider"></param> /// <returns></returns> public static ICollection<string> AddGroupProvider(ICollectionRequester requester, ICollectionProvider provider) { var CodeRegistrars = FOCCodeRegistrars(requester); var CollectionProviders = FOCCollectionProviders(requester); lock (CollectionProviders) { if (!CollectionProviders.Contains(provider)) { CollectionProviders.Add(provider); foreach(string sn in provider.SettingNames(requester, 1)) { CodeRegistrars[ToKey(sn)] = provider; } } } return new List<string>(); }
public void SetValue(ICollectionRequester requester, string name, object value) { PrologCLR.InvokeFromC( () => { PlTerm callback = AllCallbacks.Args[1]; if (IsEmpty(callback)) { return(false); } var plVar = PlTerm.PlVar(); var query = new PlQuery("call", new PlTermV(callback, PlTerm.PlString(NameSpace), PlTerm.PlString(name), PrologCLR.ToProlog(value))); return(query.NextSolution()); }, DiscardFrames); }
/// <summary> /// Returns an enumeration of Settings that Others have Overridden /// </summary> /// <param name="requester"></param> /// <param name="provider"></param> /// <returns></returns> public static ICollection <string> AddGroupProvider(ICollectionRequester requester, ICollectionProvider provider) { var CodeRegistrars = FOCCodeRegistrars(requester); var CollectionProviders = FOCCollectionProviders(requester); lock (CollectionProviders) { if (!CollectionProviders.Contains(provider)) { CollectionProviders.Add(provider); foreach (string sn in provider.SettingNames(requester, 1)) { CodeRegistrars[ToKey(sn)] = provider; } } } return(new List <string>()); }
public static bool SendSettingsChange(ICollectionRequester requester, string namespac, string name, object valeu) { foreach (ICollectionProvider provider in GetProviders(requester, namespac)) { if (ReferenceEquals(provider, requester)) { continue; } provider.SetValue(requester, name, valeu); lock (VarListeners) { foreach (var action in VarListeners) { action(requester, namespac, name, valeu); } } } return(true); }
public void SetValue(ICollectionRequester requester, string name, object value) { PrologCLR.InvokeFromC( () => { if (IsEmpty(Setter)) { return(false); } var plVar = PlTerm.PlVar(); var query = new PlQuery(Module, Setter, new PlTermV(PrologCLR.ToProlog(requester), PlTerm.PlString(NameSpace), PlTerm.PlString(name), PrologCLR.ToProlog(value))); while (query.NextSolution()) { } return(true); }, DiscardFrames); }
public IEnumerable<string> SettingNames(ICollectionRequester requester, int depth) { return PrologCLR.InvokeFromC( () => { if (IsEmpty(KeyGetter)) return null; List<string> names = new List<string>(); var plVar = PlTerm.PlVar(); var query = new PlQuery(Module, KeyGetter, new PlTermV(PrologCLR.ToProlog(requester), PlTerm.PlString(NameSpace), plVar)); while (query.NextSolution()) { string res = (string) query.Args[2]; if (!names.Contains(res)) names.Add(res); } return names.ToArray(); }, DiscardFrames); }
static public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { var all = new HashSet <string>(); foreach (var nv in CollectionProviders) { string ns = ToKey(nv.NameSpace); IEnumerable <string> cvol = nv.SettingNames(requester, depth); if (cvol != null) { foreach (var c in cvol) { all.Add(ns + "." + ToKey(c)); } } } return(all); } }
public ICollection GetGroup(ICollectionRequester requester, string name) { return(world.ResolveForExternal(name)); }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { return(GroupNames); }
public void SetValue(ICollectionRequester requester, string name, object value) { //throw new NotImplementedException(); }
public ICollection GetGroup(ICollectionRequester requester, string name) { return null; }
static public IEnumerable<ICollectionProvider> GetProviders(ICollectionRequester requester, string namespaec) { var namespaec0 = ToKey(namespaec); var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { HashSet<object> sp = null; if (requester.SessionMananger != null) sp = requester.SessionMananger.SkippedProviders; var all = new List<ICollectionProvider>(); foreach (var nv in CollectionProviders) { var nsp = nv.NameSpace; if (!string.IsNullOrEmpty(nsp) && ToKey(nv.NameSpace) != namespaec0) continue; if (sp == null || !sp.Contains(nv)) { all.Add(nv); // sp.Add(nv); } } return all; } }
public RequesterSession(ICollectionRequester requester) { TheRequester = requester; SkippedProviders = new HashSet <object>(); }
public ICollection GetGroup(ICollectionRequester requester, string name) { return(ggf(name)); }
public void SetValue(ICollectionRequester requester, string name, object value) { // if (!ScriptManager.HasSetting(this, name)) return; //@TODO dmiles }
///<summary> ///</summary> ///<param name="name"></param> ///<returns></returns> ///<exception cref="NotImplementedException"></exception> public ICollection GetGroup(ICollectionRequester requester, string name) { return null; // throw new NotImplementedException(); }
static public IEnumerable<string> GetNameSpaces(ICollectionRequester requester) { var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { var all = new HashSet<string>(); foreach (var nv in CollectionProviders) { all.Add(ToKey(nv.NameSpace)); } return all; } }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { //get { return(new[] { named }); } }
public static bool SendSettingsChange(ICollectionRequester requester, string namespac, string name, object valeu) { foreach (ICollectionProvider provider in GetProviders(requester, namespac)) { if (ReferenceEquals(provider, requester)) continue; provider.SetValue(requester, name, valeu); lock (VarListeners) { foreach (var action in VarListeners) { action(requester, namespac, name, valeu); } } } return true; }
public void SetValue(ICollectionRequester requester, string name, object value) { throw new NotImplementedException(); }
public IEnumerable<string> SettingNames(ICollectionRequester requester, int depth) { return GroupNames; }
static public ICollection GetGroup(ICollectionRequester requester, string namespaec, string varname) { if (LoopingOn(namespaec + "." + varname, "GetGroup")) { return(null); } var CodeRegistrars = FOCCodeRegistrars(requester); ICollectionProvider defaultProvider; if (varname.ToLower() == "currentaction") { } if (CodeRegistrars.TryGetValue(varname, out defaultProvider) && defaultProvider != null) { ICollection v = defaultProvider.GetGroup(requester, varname); return(v); } List <object> rv = new List <object>(); ICollection c = null; int fc = 0; var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { foreach (var nv in GetProviders(requester, namespaec)) { ICollection v = nv.GetGroup(requester, varname); if (v == null) { continue; } fc++; if (fc == 2) { foreach (var e in c) { if (!rv.Contains(e)) { rv.Add(e); } } foreach (var e in v) { if (!rv.Contains(e)) { rv.Add(e); } } } else if (fc > 2) { foreach (var e in v) { if (!rv.Contains(e)) { rv.Add(e); } } } c = v; } } if (fc == 0) { return(null); } if (fc == 1) { return(c); } return(rv); }
public ICollection GetGroup(ICollectionRequester requester, string name) { return world.ResolveForExternal(name); }
static public IEnumerable<string> SettingNames(ICollectionRequester requester, int depth) { var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { var all = new HashSet<string>(); foreach (var nv in CollectionProviders) { string ns = ToKey(nv.NameSpace); IEnumerable<string> cvol = nv.SettingNames(requester, depth); if (cvol != null) { foreach (var c in cvol) { all.Add(ns + "." + ToKey(c)); } } } return all; } }
public IEnumerable <string> SettingNames(ICollectionRequester requester, int depth) { lock (Dict) return(Dict.Keys); }
private static IEnumerable<ICollectionProvider> GetCollectionProviders(ICollectionRequester requester) { requester.SessionMananger = new RequesterSession(requester); return LockInfo.CopyOf(FOCCollectionProviders(requester)); }
public ICollection GetGroup(ICollectionRequester requester, string name) { return PrologCLR.InvokeFromC( () => { if (IsEmpty(Getter)) return null; var plVar = PlTerm.PlVar(); List<object> results = new List<object>(); var query = new PlQuery(Module, Getter, new PlTermV(PrologCLR.ToProlog(requester), PlTerm.PlString(NameSpace), PlTerm.PlString(name), plVar)); while (query.NextSolution()) { object res = PrologCLR.GetInstance(query.Args[3]); if (!results.Contains(res)) results.Add(res); } return results.Count == 0 ? null : results; }, DiscardFrames); }
public static bool HasSetting(ICollectionRequester requester, ICollectionProvider provider, string name) { name = ToKey(name); foreach (var settingName in provider.SettingNames(requester, 1)) { if (ToKey(settingName) == name) return true; } return false; }
public static bool AddSetting(ICollectionRequester requester, string namespac, string name, object valeu) { if (LoopingOn(namespac + "." + name, "update")) { return false; } bool somethngTookIt = false; foreach (ICollectionProvider provider in GetProviders(requester, namespac)) { if (!HasSetting(requester, provider, name)) { if (!provider.AcceptsNewKeys) continue; } try { provider.SetValue(requester, name, valeu); somethngTookIt = true; } catch (Exception e) { DLRConsole.DebugWriteLine("AddSetting " + e); } } return somethngTookIt; }
///<summary> ///</summary> ///<param name="name"></param> ///<returns></returns> ///<exception cref="NotImplementedException"></exception> public ICollection GetGroup(ICollectionRequester requester, string name) { return(null); // throw new NotImplementedException(); }
public void SetValue(ICollectionRequester requester, string name, object value) { PrologCLR.InvokeFromC( () => { PlTerm callback = AllCallbacks.Args[1]; if (IsEmpty(callback)) return false; var plVar = PlTerm.PlVar(); var query = new PlQuery("call", new PlTermV(callback, PlTerm.PlString(NameSpace), PlTerm.PlString(name), PrologCLR.ToProlog(value))); return query.NextSolution(); }, DiscardFrames); }
private static IEnumerable <ICollectionProvider> GetCollectionProviders(ICollectionRequester requester) { requester.SessionMananger = new RequesterSession(requester); return(LockInfo.CopyOf(FOCCollectionProviders(requester))); }
static public ICollection GetGroup(ICollectionRequester requester, string namespaec, string varname) { if (LoopingOn(namespaec + "." + varname, "GetGroup")) { return null; } var CodeRegistrars = FOCCodeRegistrars(requester); ICollectionProvider defaultProvider; if (varname.ToLower() == "currentaction") { } if (CodeRegistrars.TryGetValue(varname, out defaultProvider) && defaultProvider != null) { ICollection v = defaultProvider.GetGroup(requester, varname); return v; } List<object> rv = new List<object>(); ICollection c = null; int fc = 0; var CollectionProviders = GetCollectionProviders(requester); lock (CollectionProviders) { foreach (var nv in GetProviders(requester, namespaec)) { ICollection v = nv.GetGroup(requester, varname); if (v == null) continue; fc++; if (fc == 2) { foreach (var e in c) { if (!rv.Contains(e)) rv.Add(e); } foreach (var e in v) { if (!rv.Contains(e)) rv.Add(e); } } else if (fc > 2) { foreach (var e in v) { if (!rv.Contains(e)) rv.Add(e); } } c = v; } } if (fc == 0) return null; if (fc == 1) return c; return rv; }