예제 #1
0
 public void RequestNewReference( IReferenceConsumer requester, Type targettype )
 {
     if( ismaster )
     {
         int reference = _GetNextReferenceForType( targettype );
         requester.NewReferenceResponse( targettype, reference );
     }
     else
     {
         RpcController.GetInstance().NetObject( this ).RequestNewReferenceRpc( null, targettype, new RefToLocalObject( requester ) );
     }
 }
예제 #2
0
 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;
     }
 }
예제 #3
0
 public void RequestNewReference( IReferenceConsumer requester, Type targettype )
 {
     if( ismaster )
     {
         int reference = _GetNextReferenceForType( targettype );
         requester.NewReferenceResponse( targettype, reference );
     }
     else
     {
         RpcController.GetInstance().NetObject( this ).RequestNewReferenceRpc( null, targettype, new RefToLocalObject( requester ) );
     }
 }
예제 #4
0
        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;
            }
        }
예제 #5
0
 public void ReferenceResponse( object connection, int reference, Type targettype, RefToLocalObject requesterref )
 {
     IReferenceConsumer requester = (IReferenceConsumer)requesterref.Target;
     requester.NewReferenceResponse( targettype, reference );
 }