Exemple #1
0
        public ClientSyncer(IClientPacketManager packetManager)
        {
            //TODO: cleanup
            var gen         = new NetworkPacketFactoryCodeGenerater(TWDir.Cache.FullName + "\\ClientSyncerGenTemp" + (new Random()).Next(0, 10000) + ".dll");
            var timeFactory = gen.GetFactory <TimeUpdatePacket>();

            gen.BuildFactoriesAssembly();

            deltaTransport = packetManager.CreatePacketTransporter("WorldSyncerDeltaSnapshot", new DataPacket.Factory(),
                                                                   PacketFlags.UDP);

            timeTransport = packetManager.CreatePacketTransporter("WorldSyncerTimeUpdate", timeFactory,
                                                                  PacketFlags.UDP);

            var t = new Thread(receiveDeltaJob)
            {
                Name = "ClientSyncerDeltaJob", IsBackground = true
            };

            t.Start();

            t = new Thread(receiveTimeJob)
            {
                Name = "ClientSyncerTimeJob", IsBackground = true
            };
            t.Start();
        }
        public ClientStaticWorldObjectSyncer(IClientPacketManager pm, IStaticWorldObjectFactory worldObjectFactory)
        {
            this.worldObjectFactory = worldObjectFactory;
            var gen =
                new Networking.NetworkPacketFactoryCodeGenerater(TWDir.Cache + "\\ClientStaticWorldObjectSyncer" +
                                                                 (new Random()).Next(0, 100000) + ".dll");

            updateTransporter = pm.CreatePacketTransporter("StaticWorldObjectSyncer_UpdatePacket", gen.GetFactory <StaticWorldObjectUpdatePacket>(), Networking.PacketFlags.TCP);
            deleteTransporter = pm.CreatePacketTransporter("StaticWorldObjectSyncer_DeletePacket", gen.GetFactory <StaticWorldObjectDeletePacket>(), Networking.PacketFlags.TCP);

            gen.BuildFactoriesAssembly();
        }
        public ClientVersioningSyncer(VersioningSystem sys, IClientPacketManager pm)
        {
            this.sys = sys;
            var gen = new NetworkPacketFactoryCodeGenerater(TWDir.GenerateRandomCacheFile("CVS", "dll"));

            revisionTransporter = pm.CreatePacketTransporter("Versioning_Revision",
                                                             gen.GetFactory <RevisionPacket>(), PacketFlags.TCP);
            requestRevisionTransporter = pm.CreatePacketTransporter("Versioning_RequestRevision",
                                                                    gen.GetFactory <RevisionRequestPacket>(), PacketFlags.TCP);
            commandTransporter = pm.CreatePacketTransporter("Versioning_CMD",
                                                            new BytePacket.Factory(), PacketFlags.TCP);

            fileTransporter = new ClientFileTransporter <RevisionFilePacket>("Versioning_File", pm, TWDir.Cache.CreateSubdirectory("Versioning").FullName);
            fileTransporter.StartReceiving();

            gen.BuildFactoriesAssembly();
        }
        public ClientFileTransporter(string uniqueName, IClientPacketManager pm, string downloadCachePath)
        {
            this.downloadCachePath = downloadCachePath;
            UniqueName             = uniqueName;
            i = (new Random()).Next(0, 1000);

            var gen = new NetworkPacketFactoryCodeGenerater(Application.StartupPath + "\\ClientFileTrans" + uniqueName + i.ToString() + ".dll");

            startTransporter = pm.CreatePacketTransporter("SFTFileStart" + uniqueName, gen.GetFactory <FileStartPacket>(),
                                                          PacketFlags.TCP);
            endTransporter = pm.CreatePacketTransporter("SFTFileComplete" + uniqueName, gen.GetFactory <T>(),
                                                        PacketFlags.TCP);
            partTransporter = pm.CreatePacketTransporter("SFTFilePart" + uniqueName, gen.GetFactory <FilePartPacket>(),
                                                         PacketFlags.TCP);
            gen.BuildFactoriesAssembly();

            StartReceiving();
        }