コード例 #1
0
        public Dictionary<string, SimulationObjectProxy> GetObjectProxies()
        {
            Dictionary<string, SimulationObjectProxy> proxies = new Dictionary<string, SimulationObjectProxy>();

            string key = null;
            SimulationObjectProxy obProx = null;
            DataValueProxy dvProx = null;
            lock (blackboard.blackboardLock)
            {
                foreach (BBObjectInfo ob in blackboard.objects.Values)
                {
                    obProx = new SimulationObjectProxy(ob.simObject.objectType);
                    foreach (string attname in ob.simObject.attributes.Keys)
                    {
                        //key = ob.simObject.objectType + "." + attname;
                        key = String.Format("{0}.{1}", ob.simObject.objectType, attname);
                        if (blackboard.subscriptions[id].ContainsKey(key))
                        {
                            dvProx = new DataValueProxy(ref blackboard, ob.id, attname, blackboard.subscriptions[id][key].publish);
                            obProx[attname] = dvProx;
                        }
                    }
                    if (obProx.Count() > 0)
                    {
                        proxies[ob.id] = obProx;
                    }
                }
            }
            return proxies;
        }
コード例 #2
0
        public SimulationObjectProxy GetObjectProxy(string objectID)
        {
            SimulationObjectProxy proxy = null;
            string key = null;
            DataValueProxy dvProx = null;

            lock (blackboard.blackboardLock)
            {
                BBObjectInfo ob = blackboard.objects[objectID];
                proxy = new SimulationObjectProxy(ob.simObject.objectType);
                foreach (string attname in ob.simObject.attributes.Keys)
                {
                    //key = ob.simObject.objectType + "." + attname;
                    key = String.Format("{0}.{1}", ob.simObject.objectType, attname);
                    if (blackboard.subscriptions[id].ContainsKey(key))
                    {
                        dvProx = new DataValueProxy(ref blackboard, ob.id, attname, blackboard.subscriptions[id][key].publish);
                        proxy[attname] = dvProx;
                    }
                }
                if (proxy.Count() == 0)
                {
                    proxy = null;
                }
            }

            return proxy;
        }