Beispiel #1
0
        static void Main(string[] args)
        {
            // Initialize platforms for various used SDKs
            GizmoSDK.GizmoBase.Platform.Initialize();
            GizmoSDK.GizmoDistribution.Platform.Initialize();


            Message.OnMessage += Message_OnMessage;

            Message.SetMessageLevel(MessageLevel.DEBUG);

            // Create a manager. The manager controls it all
            DistManager manager = DistManager.GetManager(true);

            // Start the manager with settting for transport protocols
            manager.Start();

            DistSession session = manager.GetSession("Perfa", true);

            // First Client -------------------------------------------------------------------

            // Client set up. You are a client that only sends information
            DistClient client = new DistClient("PerfClient", manager);

            // We need to tell the client how to initialize
            client.Initialize(0, 0, true);



            // Second Client -------------------------------------------------------------------

            // Client set up. You are a client that only receives information
            DistClient client2 = new DistClient("PerfClient2", manager);

            // We need to tell the client how to initialize
            client2.Initialize(0, 0, true);

            // Joint that session and subribe all events
            client2.JoinSession(session);
            client2.SubscribeEvents(session); // Subscribe All Events

            // Create a delegete
            client2.OnEvent += Client2_OnEvent;

            System.Threading.Thread.Sleep(100);

            // Create COUNT test event

            Timer timer = new Timer();

            DistEvent[] e_arr = new DistEvent[COUNT];

            for (int i = 0; i < COUNT; i++)
            {
                e_arr[i] = new DistEvent();
                e_arr[i].SetAttributeValue("Cnt", i);

                // Set some additional data e.g. two vec3
                e_arr[i].SetAttributeValue("vec1", new Vec3(1, 2, 3));
                e_arr[i].SetAttributeValue("vec2", new Vec3(4, 5, 6));
            }

            Console.WriteLine($"Created {COUNT} events in {timer.GetTime()} seconds -> Frequency: { timer.GetFrequency(COUNT)}");

            // Send COUNT events

            timer = new Timer();

            for (int i = 0; i < COUNT; i++)
            {
                client.SendEvent(e_arr[i], session);
            }

            Console.WriteLine($"Sent {COUNT} events in {timer.GetTime()} seconds -> Frequency: {timer.GetFrequency(COUNT)}");

            while (manager.HasPendingData() || !stopper)
            {
                System.Threading.Thread.Sleep(10);
            }

            client.Uninitialize(true);
            client2.Uninitialize(true);

            // Some kind of graceful shutdown
            manager.Shutdown();

            // GC and platform uninit is managed by the system automatically
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            // Initialize platforms for various used SDKs
            GizmoSDK.GizmoBase.Platform.Initialize();
            GizmoSDK.GizmoDistribution.Platform.Initialize();

            // Create a manager. The manager controls it all
            DistManager manager = DistManager.GetManager(true);

            DistTransportType protocol = DistTransportType.MULTICAST;

            //string iface =  "${wi-fi}";

            //string iface = "10.132.0.5";

            string iface = "127.0.0.1";

            string adress = "234.5.6.19";

            ushort server_port = 1122;
            ushort client_port = 2211;



            //string iface = null;

            // Start the manager with settting for transport protocols
            //manager.Start(DistRemoteChannel.CreateDefaultSessionChannel(true,protocol, iface), DistRemoteChannel.CreateDefaultServerChannel(true,protocol, iface));
            manager.Start(DistRemoteChannel.CreateChannel(5000, protocol, adress, client_port, iface), DistRemoteChannel.CreateChannel(5000, protocol, adress, server_port, iface));

            // Client set up. You are a client that sends and receives information
            DistClient client = new DistClient("PerfClient", manager);

            // We need to tell the client how to initialize
            client.Initialize(0, 0);

            // Now we can get a session. A kind of a meeting room that is used to exchange various "topics"
            DistSession session = client.GetSession("PerfSession", true, true);

            // Joint that session and subribe all events
            client.JoinSession(session);
            client.SubscribeEvents(session); // Subscribe All Events

            // Create a delegete
            client.OnEvent += Client_OnEvent;

            Console.WriteLine($"Press <RETURN> to start sending");

            // Now loops around some simple program to get strings from console and distribute them as a message app

            while (true)
            {
                string result = Console.ReadLine();

                if (result == "quit")
                {
                    break;
                }

                // Create COUNT test events

                Timer timer = new Timer();

                DistEvent [] e_arr = new DistEvent[COUNT];

                for (int i = 0; i < COUNT; i++)
                {
                    e_arr[i] = new DistEvent();
                    e_arr[i].SetAttributeValue("Cnt", i);

                    // Set some additional data e.g. two vec3
                    e_arr[i].SetAttributeValue("vec1", new Vec3(1, 2, 3));
                    e_arr[i].SetAttributeValue("vec2", new Vec3(4, 5, 6));
                }

                Console.WriteLine($"Created {COUNT} events in {timer.GetTime()} seconds -> Frequency: { timer.GetFrequency(COUNT)}");

                // Send COUNT events

                timer = new Timer();

                for (
                    int i = 0; i < COUNT; i++)
                {
                    client.SendEvent(e_arr[i], session);
                }

                Console.WriteLine($"Sent {COUNT} events in {timer.GetTime()} seconds -> Frequency: {timer.GetFrequency(COUNT)}");
            }

            while (manager.HasPendingData())
            {
                System.Threading.Thread.Sleep(10);
            }

            client.Uninitialize(true);

            // Some kind of graceful shutdown
            manager.Shutdown();


            // GC and platform uninit is managed by the system automatically
        }
        static void Main(string[] args)
        {
            // Add a message receiver
            Message.OnMessage += Message_OnMessage;

            // Set message level to debug
            Message.SetMessageLevel(MessageLevel.DEBUG);


            // Initialize platforms for various used SDKs
            GizmoSDK.GizmoBase.Platform.Initialize();
            GizmoSDK.GizmoDistribution.Platform.Initialize();



            // Create a manager. The manager controls it all
            DistManager manager = DistManager.GetManager(true);

            // Start the manager with settting for transport protocols
            manager.Start(DistRemoteChannel.CreateDefaultSessionChannel(), DistRemoteChannel.CreateDefaultServerChannel());

            //If we want to attach the DistMonitor debugger
            manager.EnableDebug(true);

            // Client set up. You are a client that sends and receives information
            DistClient client = new DistClient("Our Test Client", manager);

            // We need to tell the client how to initialize
            client.Initialize();

            // Now we can get a session. A kind of a meeting room that is used to exchange various "topics"
            DistSession session = client.GetSession("MessageSession", true, true);

            // Joint that session and subribe all events
            client.JoinSession(session);

            // Subscribe standard events
            client.SubscribeEvents(session);

            // Create a delegete
            client.OnEvent += Client_OnEvent;

            for (int i = 0; i < 100; i++)
            {
                DistEvent e = manager.GetEvent();

                e.SetAttributeValue("Message", "Helluuuu");

                e.SetAttributeValue("Count", i);

                client.SendEvent(e, session);

                System.Threading.Thread.Sleep(1000);
            }



            client.ResignSession(session);

            client.Uninitialize();

            // Some kind of graceful shutdown
            manager.Shutdown();


            // GC and platform uninit is managed by the system automatically
        }
        static void Main(string[] args)
        {
            // Initialize platforms for various used SDKs
            GizmoSDK.GizmoBase.Platform.Initialize();
            GizmoSDK.GizmoDistribution.Platform.Initialize();

            // Create a manager. The manager controls it all
            DistManager manager = DistManager.GetManager(true);

            // Let the manager know about our special event
            manager.RegisterEvent <MessageEvent>();

            // Start the manager with settting for transport protocols
            manager.Start(DistRemoteChannel.CreateDefaultSessionChannel(), DistRemoteChannel.CreateDefaultServerChannel());

            //If we want to attach the DistMonitor debugger
            manager.EnableDebug(true);

            // Client set up. You are a client that sends and receives information
            DistClient client = new DistClient("MessageClient", manager);

            // We need to tell the client how to initialize
            client.Initialize();

            // Now we can get a session. A kind of a meeting room that is used to exchange various "topics"
            DistSession session = client.GetSession("MessageSession", true, true);

            // Joint that session and subribe all events
            client.JoinSession(session);
            client.SubscribeEvents <MessageEvent>(session); // Subscribe MessageEvent as base type

            // Create a delegete
            client.OnEvent += Client_OnEvent;


            // Now loops around some simple program to get strings from console and distribute them as a message app

            while (true)
            {
                string result = Console.ReadLine();

                if (result == "quit")
                {
                    break;
                }

                // get a new empty event from manager
                MessageEvent e = manager.GetEvent <MessageEvent>();

                // set some attributes in the event to any kind of value
                Array.Resize <ComplexType>(ref e.Compis, 1);

                e.Compis[0] = new ComplexType {
                    SenderID = "Aloha", Speed = 27
                };

                e.Message = result;

                e.Time = Time.SystemSeconds;

                e.EnumTest = MessageEvent.Fault.BZ;

                // and send the event on the specific session
                client.SendEvent(e, session);
            }

            client.Uninitialize();

            // Some kind of graceful shutdown
            manager.Shutdown();


            // GC and platform uninit is managed by the system automatically
        }
        static void Main(string[] args)
        {
            // Add a message receiver
            Message.OnMessage += Message_OnMessage;

            // Set message level to debug
            Message.SetMessageLevel(MessageLevel.DEBUG | MessageLevel.INTERNAL);


            // Initialize platforms for various used SDKs
            GizmoSDK.GizmoBase.Platform.Initialize();
            GizmoSDK.GizmoDistribution.Platform.Initialize();



            // Create a manager. The manager controls it all
            DistManager manager = DistManager.GetManager(true);

            // Register some factories
            manager.RegisterObject <BattlefieldSoldierObject>();
            manager.RegisterObject <BattlefieldVehicleObject>();
            manager.RegisterObject <BattlefieldTimeObject>();

            // Events
            manager.RegisterEvent <BattlefieldTimeSyncEvent>();



            // Start the manager with settting for transport protocols
            var MCastAddress = "234.2.3.100";

            //var networkInterface = "10.23.24.50"; // Update this to your interface ip. E.g. 192.168.100.100.
            ushort serverPort  = 6667;
            ushort sessionPort = 6668;

            var serverChannel  = DistRemoteChannel.CreateChannel(5000, DistTransportType.MULTICAST, MCastAddress, serverPort /*,networkInterface*/);
            var sessionChannel = DistRemoteChannel.CreateChannel(5000, DistTransportType.MULTICAST, MCastAddress, sessionPort /*,networkInterface*/);

            manager.Start(sessionChannel, serverChannel);

            //If we want to attach the DistMonitor debugger
            manager.EnableDebug(true);

            // Client set up. You are a client that sends and receives information
            DistClient client = new DistClient("Our Test Client", manager);

            // We need to tell the client how to initialize
            client.Initialize();

            // Now we can get a session. A kind of a meeting room that is used to exchange various "topics"
            DistSession session = client.GetSession("Battlefield", true, true);

            // Joint that session and subribe all events
            client.JoinSession(session);

            // Create a delegete
            client.OnNewObject        += Client_OnNewObject;
            client.OnNewAttributes    += Client_OnNewAttributes;
            client.OnUpdateAttributes += Client_OnUpdateAttributes;

            client.OnEvent += Client_OnEvent;

            // Subscribe all standard objects
            client.SubscribeObjects(session, null, true);

            // Subscribe all standard events
            client.SubscribeEvents(session);


            //DistObject o = manager.GetObject("TestObject");

            //client.AddObject(o, session);

            //o = client.WaitForObject("TestObject", session);

            for (int i = 0; i < 100; i++)
            {
                //DistTransaction update = new DistTransaction();

                //update.SetAttributeValue("Updater", client.GetClientID().InstanceID.ToString());

                //client.UpdateObject(update, o);

                System.Threading.Thread.Sleep(1000);
            }



            client.ResignSession(session);

            client.Uninitialize();

            // Some kind of graceful shutdown
            manager.Shutdown();


            // GC and platform uninit is managed by the system automatically
        }