Exemple #1
0
        public static void Main(string[] args)
        {
            try {
                var client = new data_processors.synapse_client <data_processors.waypoints>();
                ReaderWriterLockSlim rwl = new ReaderWriterLockSlim();
                client.subscribe(rwl, new contests4.type_factory(), "test.*",
                                 data_processors.synapse_client_utils.timestamp(new DateTime(2015, 1, 1)), // from
                                 0,                                                                        // until
                                 data_processors.synapse_client_utils.timespan(new TimeSpan(20, 0, 0)),    // delayed delivery tolerance
                                 true);

                for (var msg_wrapper = client.next(); msg_wrapper != null; msg_wrapper = client.next())
                {
                    rwl.EnterWriteLock();
                    try {
                        Console.WriteLine(">>>>>CURRENT CONTESTS<<<<<");
                        foreach (var messages_per_subject_i in new SortedDictionary <string, ConcurrentDictionary <string, ConcurrentDictionary <byte[], message_envelope <data_processors.waypoints> > > >(client.previous_messages))
                        {
                            foreach (var messages_per_type_i in new SortedDictionary <string, ConcurrentDictionary <byte[], message_envelope <data_processors.waypoints> > >(messages_per_subject_i.Value))
                            {
                                if (messages_per_type_i.Key == "ContestsType")
                                {
                                    foreach (var messages_per_delta_i in new SortedDictionary <byte[], message_envelope <data_processors.waypoints> >(messages_per_type_i.Value, new data_processors.byte_array_comparator()))
                                    {
                                        Console.WriteLine("subject " + messages_per_subject_i.Key + ", delta " + messages_per_delta_i.Key);
                                        if (messages_per_delta_i.Value.non_delta_seen == true)                                   // default to printing only completed (not partial-accumulation only, incomplete) messages
                                        {
                                            var msg = (ContestsType)messages_per_delta_i.Value.msg;
                                            if (messages_per_delta_i.Value.waypoints != null)
                                            {
                                                foreach (var waypoint in messages_per_delta_i.Value.waypoints.get_path())
                                                {
                                                    Console.WriteLine("waypoint at(=" + waypoint.get_tag() + "), UTC(=" + data_processors.federated_serialisation.utils.DecodeTimestamp((ulong)waypoint.get_timestamp().Value) + ")");
                                                }
                                            }
                                            print_contest_msg(msg);
                                        }
                                    }
                                }
                            }
                        }
                    } finally {
                        rwl.ExitWriteLock();
                    }
                }
                client.close();
                Console.WriteLine("bye bye");
            } catch (Exception e) {
                Console.WriteLine("oops " + e.Message);
            }
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            try {
                {
                    var waypoint = new waypoint();
                    waypoint.set_tag("test.transform.example.1.c#");
                    waypoints            wp = new waypoints();
                    var                  synapse_subscriber = new data_processors.synapse_client <data_processors.waypoints>("10.16.10.127");
                    var                  synapse_publisher  = new data_processors.synapse_client <data_processors.waypoints>("10.16.10.127");
                    ReaderWriterLockSlim rwl = new ReaderWriterLockSlim();
                    synapse_subscriber.subscribe(rwl, new type_factory(),
                                                 //"test.betfair.contests.au",
                                                 "test.sim.*.*",
                                                 data_processors.synapse_client_utils.timestamp(new DateTime(2015, 1, 1)),
                                                 0,                                                                     // until
                                                 data_processors.synapse_client_utils.timespan(new TimeSpan(20, 0, 0)), // delayed delivery tolerance
                                                 true);

                    uint i = 0;
                    for (var msg_wrapper = synapse_subscriber.next(7000); msg_wrapper != null; msg_wrapper = synapse_subscriber.next(5000))
                    {
                        if (msg_wrapper.type_name == "ContestsType" && msg_wrapper.non_delta_seen == true)
                        {
                            var now = DateTime.UtcNow;
                            waypoint.set_timestamp(data_processors.federated_serialisation.utils.EncodeDateTime(now));
                            wp.set_from((waypoints)msg_wrapper.waypoints);
                            wp.add_path_element(waypoint);
                            var written_bytes = synapse_publisher.publish(msg_wrapper.amqp.routing_key + ".transformation_test_c_sharp", (ContestsType)((thrift_contests_type)msg_wrapper.msg).output_msg, wp, (i++ % 100 == 0 ? false : true), null, 0, synapse_client_utils.timestamp(now));
                            Console.WriteLine("republished message of " + written_bytes + " bytes");
                        }
                    }

                    synapse_subscriber.close();
                    synapse_publisher.close();

                    Console.WriteLine("bye bye");
                }
            } catch (Exception e) {
                Console.WriteLine("oops " + e.Message);
            }
        }
Exemple #3
0
        public void run(SslPolicyErrors?use_ssl, string synapse_host, int synapse_port, string topic_name, bool tcp_no_delay, int so_rcvbuf, int so_sndbuf)
        {
            worker = new Thread(new ThreadStart(() => {
                Console.Error.WriteLine("synapse_client running...");
                data_processors.synapse_client <DataProcessors.Waypoints.waypoints> client = null;
                try
                {
                    client = new data_processors.synapse_client <DataProcessors.Waypoints.waypoints>(use_ssl, synapse_host, synapse_port, tcp_no_delay, so_rcvbuf, so_sndbuf, 30, 100000);
                    client.subscribe(new ReaderWriterLockSlim(), new DataProcessors.Contests4.type_factory(), topic_name,
                                     1,
                                     0,                                                                     // until
                                     data_processors.synapse_client_utils.timespan(new TimeSpan(20, 0, 0)), // delayed delivery tolerance
                                     true, tcp_no_delay);

                    for (var msg_wrapper = client.next(7000); msg_wrapper != null; msg_wrapper = client.next(7000))
                    {
                        var p = new rcv_ping();
                        p.published_timestamp = msg_wrapper.amqp.decode_timestamp();
                        p.local_timestamp     = DateTime.UtcNow;
                        stats.Enqueue(p);
                        if (p.published_timestamp % 100 == 0)
                        {
                            Console.WriteLine("sub got message: " + p.published_timestamp);
                        }
                    }
                } catch {
                    error = true;
                    Console.Error.WriteLine("synapse_subscriber exception");
                } finally {
                    if (client != null)
                    {
                        client.close();
                    }
                }
            }));
            worker.Start();
        }
Exemple #4
0
        public static void Main(string[] args)
        {
            try {
                var client = new data_processors.synapse_client(new type_factory());
                //client.subscribe("test.thrift.*.leon", new DateTime(2015, 1, 1), DateTime.UtcNow, true);
                client.subscribe("test.thrift.*.leon", new DateTime(2015, 1, 1), null, true);

                bool callbacks_attached = false;
                for (var msg_wrapper = client.next(); msg_wrapper != null; msg_wrapper = client.next())
                {
                    if (msg_wrapper.non_delta_seen == true)
                    {
                        var msg = (ImaginaryBetPool)msg_wrapper.msg;
                        Console.WriteLine("\nreceived and parsed msg:\n'{0}', is delta: '{1}'", msg, msg.read_in_delta_mode);
                        if (msg.get_type_id() != ImaginaryBetPool.type_id)
                        {
                            throw new Exception("unexpected message type");
                        }
                        if (callbacks_attached == false)
                        {
                            callbacks_attached = true;
                            if (msg.get_weather_records() != null)
                            {
                                foreach (var j in msg.get_weather_records())
                                {
                                    j.Value.user_data = new local_state();
                                }
                            }
                            msg.weather_records_on_add_callback = delegate(WeatherRecordType x) {
                                Console.WriteLine("\n\nDATA ADDED");
                                x.user_data = new local_state();
                            };
                        }
                        if (msg.get_combinations() != null)
                        {
                            var sorted_dict = new SortedDictionary <byte[], double>(msg.get_combinations(), new byte_array_comparator());
                            foreach (var i in sorted_dict)
                            {
                                string text_key = "";
                                foreach (var k in i.Key)
                                {
                                    text_key += k.ToString() + ' ';
                                }
                                Console.WriteLine("betpool combination: ['{0}'] '{1}'", text_key, i.Value);
                            }
                        }
                        if (msg.get_weather_records() != null)
                        {
                            foreach (var j in msg.get_weather_records())
                            {
                                Console.WriteLine("weather record: ['{0}'] '{1}'", j.Key, j.Value.get_xid());
                                Console.WriteLine("weather record user_data: '{0}'", j.Value.user_data);
                            }
                        }
                    }
                }

                client.close();
                Console.WriteLine("bye bye");
            } catch (Exception e) {
                Console.WriteLine("oops " + e.Message);
            }
        }