// events for incoming changes from object controllers
        void controller_ObjectModified(object source, ObjectModifiedArgs e)
        {
            LogFile.WriteLine("netreplicationcontroller controller_ObjectModified " + e.TargetObject.GetType());
            if (this.rpc.IsServer)
            {
                //LogFile.WriteLine("controller_ObjectCreated() " + e.TargetObject);
                //NetworkInterfaces.ObjectReplicationServerToClient_ClientProxy objectreplicationproxy = new OSMP.NetworkInterfaces.ObjectReplicationServerToClient_ClientProxy( rpc,
                // handled by something like DirtyCacheController
                dirtyobjectcontroller.MarkDirty(e.TargetObject, e.modificationtypeattributes);
            }
            else
            {
                int bitmap = new ReplicateAttributeHelper().TypeArrayToBitmap(e.modificationtypeattributes);

                byte[] entitydata   = new byte[4096];
                int    nextposition = 0;
                new BinaryPacker().PackObjectUsingSpecifiedAttributes(entitydata, ref nextposition,
                                                                      e.TargetObject, e.modificationtypeattributes);

                byte[] entitydatatotransmit = new byte[nextposition];
                Buffer.BlockCopy(entitydata, 0, entitydatatotransmit, 0, nextposition);

                //LogFile.WriteLine(Encoding.UTF8.GetString(entitydatatotransmit));

                NetworkInterfaces.ObjectReplicationClientToServer_ClientProxy objectreplicationproxy = new OSMP.NetworkInterfaces.ObjectReplicationClientToServer_ClientProxy(rpc, null);
                objectreplicationproxy.ObjectModified(e.TargetObject.Reference, e.TargetObject.GetType().ToString(), bitmap, entitydatatotransmit);
            }
        }
Exemplo n.º 2
0
 // incoming event from NetReplicationController:
 void IReplicatedObjectController.ReplicatedObjectModified(object notifier, ObjectModifiedArgs e)
 {
     LogFile.WriteLine("WorldModel ReplicatedObjectModified " + e.TargetObject);
 }
Exemplo n.º 3
0
 // incoming event from NetReplicationController:
 void IReplicatedObjectController.ReplicatedObjectModified(object notifier, ObjectModifiedArgs e)
 {
     LogFile.WriteLine("WorldModel ReplicatedObjectModified " + e.TargetObject);
 }
        // events for incoming changes from object controllers
        void controller_ObjectModified(object source, ObjectModifiedArgs e)
        {
            LogFile.WriteLine("netreplicationcontroller controller_ObjectModified " + e.TargetObject.GetType());
            if (this.rpc.IsServer)
            {
                //LogFile.WriteLine("controller_ObjectCreated() " + e.TargetObject);
                //NetworkInterfaces.ObjectReplicationServerToClient_ClientProxy objectreplicationproxy = new OSMP.NetworkInterfaces.ObjectReplicationServerToClient_ClientProxy( rpc,
                // handled by something like DirtyCacheController
                dirtyobjectcontroller.MarkDirty(e.TargetObject, e.modificationtypeattributes );
            }
            else
            {
                int bitmap = new ReplicateAttributeHelper().TypeArrayToBitmap(e.modificationtypeattributes);

                byte[] entitydata = new byte[4096];
                int nextposition = 0;
                new BinaryPacker().PackObjectUsingSpecifiedAttributes(entitydata, ref nextposition,
                    e.TargetObject, e.modificationtypeattributes);

                byte[] entitydatatotransmit = new byte[nextposition];
                Buffer.BlockCopy(entitydata, 0, entitydatatotransmit, 0, nextposition);

                //LogFile.WriteLine(Encoding.UTF8.GetString(entitydatatotransmit));

                NetworkInterfaces.ObjectReplicationClientToServer_ClientProxy objectreplicationproxy = new OSMP.NetworkInterfaces.ObjectReplicationClientToServer_ClientProxy(rpc, null);
                objectreplicationproxy.ObjectModified(e.TargetObject.Reference, e.TargetObject.GetType().ToString(), bitmap, entitydatatotransmit);
            }
        }