Ejemplo n.º 1
0
        public SyncPool CreateSyncPool(IRestriction r)
        {
            SyncPool pool = new SyncPool(_serializer, _syncSerializer);

            foreach (Type t in _registeredTypes)
            {
                IList <ISerializableObject> list = _serializer.Connector.LoadList(t, r);
                foreach (ISerializableObject iso in list)
                {
                    pool.AddISerializableObject(iso);
                }
            }
            pool.Intialize();
            return(pool);
        }
Ejemplo n.º 2
0
        //Vereinigung zweier SyncPools, diese müssen diesselben Serializer besitzen und initialisiert sein.
        internal SyncPool union(SyncPool s1, SyncPool s2)
        {
            //Kompatibilität testen
            try
            {
                if ((s1._serializer != s2._serializer) || (s1._syncSerializer != s2._syncSerializer))
                {
                    Exception ex = new Exception();
                    throw ex;
                }
                if (s1._initialized == false || s2._initialized == false)
                {
                    Exception ex = new Exception();
                    throw ex;
                }
            }
            catch (Exception ex) {
                //Unterschiedliche Serializer, Vereinigung nicht möglich
                return(null);
            }
            SyncPool s = new SyncPool(s1._serializer, s1._syncSerializer);

            s._pooledObjects = new Dictionary <Guid, SyncContainer>(s1._pooledObjects);//Performanter als kopieren

            foreach (KeyValuePair <Guid, SyncContainer> kv in s2._pooledObjects)
            {
                if (s._pooledObjects.Contains(kv) == false)
                {
                    s._pooledObjects.Add(kv.Key, kv.Value);
                }
            }
            //Initialisierung notwendig? Immerhin besteht der neue Syncpool nur aus initialisierten Synccontainern
            //Ist abhängig vom RelationResolver. Das heißt nur wenn neue Beziehungen aufgelöst werden müssen.
            s.Intialize();
            return(s);
        }
Ejemplo n.º 3
0
 public void Synchronize(SyncPool syncPool)
 {
     syncPool.StartSynchronizing(this);
 }
Ejemplo n.º 4
0
 public void Analyze(SyncPool syncPool)
 {
     syncPool.StartAnalyzing(this);
 }