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); } }
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); } }
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(); }
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); } }