public RefToReplicatedObject( IReplicated targetobject ) { islocal = true; this.targetobject = targetobject; Type targettype = targetobject.GetType(); reference = replicatedobjectreferencecontroller.GetInstance().GetReference( targettype, targetobject ); }
public int GetNextReference( IReferenceConsumer requester, Type targettype, IReplicated targetobject ) { HashableWeakReference targetobjectweakreference = new HashableWeakReference( targetobject ); if( referencebyobject.Contains( targetobjectweakreference ) ) { return (int)referencebyobject[ targetobjectweakreference ]; } if( ismaster ) { int nextreference = _GetNextReferenceForType( targettype ); objectbyreference.Add( nextreference, targetobjectweakreference ); referencebyobject.Add( targetobjectweakreference, nextreference ); return nextreference; } else { return null; } }
/// <summary> /// Compares the value. /// </summary> /// <param name="other"></param> /// <returns></returns> public int CompareTo(IReplicated other) { return((int)(this.Version.Own - other.Version.Own)); }
public void Write(IReplicated item, ReplicatedVersion since) { item.Write(this, since); }