Example #1
0
 public virtual void StartReplicationTransaction(IReadonlyReplicationProviderSignature
                                                 peerSignature)
 {
     ClearAllReferences();
     lock (Lock())
     {
         Transaction  trans      = _container.Transaction;
         Db4oDatabase myIdentity = _container.Identity();
         _signatureMap.Put(myIdentity);
         Db4oDatabase otherIdentity = _signatureMap.Produce(peerSignature.GetSignature(),
                                                            peerSignature.GetCreated());
         Db4oDatabase younger = null;
         Db4oDatabase older   = null;
         if (myIdentity.IsOlderThan(otherIdentity))
         {
             younger = otherIdentity;
             older   = myIdentity;
         }
         else
         {
             younger = myIdentity;
             older   = otherIdentity;
         }
         _replicationRecord = ReplicationRecord.QueryForReplicationRecord(_container, trans
                                                                          , younger, older);
         if (_replicationRecord == null)
         {
             _replicationRecord = new ReplicationRecord(younger, older);
             _replicationRecord.Store(_container);
         }
     }
 }
 public virtual IReadonlyReplicationProviderSignature GetSignature()
 {
     if (_mySignature == null)
     {
         _mySignature = new Db4oReplicationProviderSignature(_container.Identity());
     }
     return(_mySignature);
 }
Example #3
0
		public virtual void TestReplicationLifeCycle()
		{
			BSignatureBytes = B().Provider().GetSignature().GetSignature();
			ASignature = A().Provider().GetSignature();
			BSignature = B().Provider().GetSignature();
			TstObjectUpdate();
			TstSignature();
			TstObjectsChangedSinceLastReplication();
			TstReferences();
			TstStore();
			TstRollback();
			TstDeletion();
		}
 public virtual void Test()
 {
     BSignatureBytes = B().Provider().GetSignature().GetSignature();
     ASignature      = A().Provider().GetSignature();
     BSignature      = B().Provider().GetSignature();
     TstObjectUpdate();
     TstSignature();
     TstObjectsChangedSinceLastReplication();
     TstReferences();
     TstStore();
     TstRollback();
     TstDeletion();
 }
Example #5
0
 public virtual void StartReplicationTransaction(IReadonlyReplicationProviderSignature
                                                 peerSignature)
 {
     if (_peerSignature != null)
     {
         if (!_peerSignature.Equals(peerSignature))
         {
             throw new ArgumentException("This provider can only replicate with a single peer."
                                         );
         }
     }
     _peerSignature = peerSignature;
     _timeStampIdGenerator.SetMinimumNext(_lastReplicationVersion);
 }
		public virtual void StartReplicationTransaction(IReadonlyReplicationProviderSignature
			 peerSignature)
		{
			ClearAllReferences();
			lock (Lock())
			{
				Transaction trans = _container.Transaction;
				Db4oDatabase myIdentity = _container.Identity();
				_signatureMap.Put(myIdentity);
				Db4oDatabase otherIdentity = _signatureMap.Produce(peerSignature.GetSignature(), 
					peerSignature.GetCreated());
				Db4oDatabase younger = null;
				Db4oDatabase older = null;
				if (myIdentity.IsOlderThan(otherIdentity))
				{
					younger = otherIdentity;
					older = myIdentity;
				}
				else
				{
					younger = myIdentity;
					older = otherIdentity;
				}
				_replicationRecord = ReplicationRecord.QueryForReplicationRecord(_container, trans
					, younger, older);
				if (_replicationRecord == null)
				{
					_replicationRecord = new ReplicationRecord(younger, older);
					_replicationRecord.Store(_container);
				}
				else
				{
					_container.RaiseCommitTimestamp(_replicationRecord._version + 1);
				}
				_commitTimestamp = _container.GenerateTransactionTimestamp(0);
			}
		}
		public virtual IReadonlyReplicationProviderSignature GetSignature()
		{
			if (_mySignature == null)
			{
				_mySignature = new Db4oReplicationProviderSignature(_container.Identity());
			}
			return _mySignature;
		}
		public virtual void StartReplicationTransaction(IReadonlyReplicationProviderSignature
			 peerSignature)
		{
			if (_peerSignature != null)
			{
				if (!_peerSignature.Equals(peerSignature))
				{
					throw new ArgumentException("This provider can only replicate with a single peer."
						);
				}
			}
			_peerSignature = peerSignature;
			_timeStampIdGenerator.SetMinimumNext(_lastReplicationVersion);
		}