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 static void Main(string[] args) { try { // create client var client = new data_processors.synapse_client(new type_factory()); var bet_pool = new ImaginaryBetPool(); Random rnd = new Random(); // Custom message creation for (int i = 0; i != 30; ++i) { if ((i % 2) == 0) { if (bet_pool.get_weather_records_element(3) == null) { bet_pool.set_weather_records_element(3, new WeatherRecordType()); } bet_pool.get_weather_records_element(3).set_xid("there it is"); } else { if ((i % 3) == 0) { bet_pool.set_weather_records_element(3, null); } else { bet_pool.get_weather_records_element(3).set_xid("modified xid..."); } } bet_pool.set_xid("11-06-2008;Hong+Kong;1;1208%3AHK;quartet;1;4.1;150;50;b"); bet_pool.set_sid("optionally set sid value:x12:1251:777"); if (bet_pool.get_description() == null) { bet_pool.set_description(new TextTypeExtended()); } bet_pool.get_description().set_description("sample description of a message for the betting pool(s)"); // build some sample combos for (byte a = 1; a != 5; ++a) { for (byte b = 1; b != 5; ++b) { for (byte c = 1; c != 5; ++c) { for (byte d = 1; d != 5; ++d) { byte[] key = new byte[] { a, b, c, d }; if (rnd.NextDouble() < .1) // alternate addition and deletion of keys -- for testing illustration purposes... { bet_pool.set_combinations_element(key, i + rnd.NextDouble() * .777); } else { bet_pool.set_combinations_element(key, null); } } } } } var timestamp = bet_pool.get_When(); if (timestamp == null) { timestamp = new TimestampType(); bet_pool.set_When(timestamp); } timestamp.set_Value(client.timestamp_now()); // send it out ... client.publish("test.thrift.hong_kong.leon", bet_pool, i % 10 == 0 ? false : true); // ... using inter-message delta serialistaion, with every 10th message being sent as a whole. //client.publish("test.thrift.hong_kong.leon", bet_pool, false); Console.WriteLine("\npublished '{0}'", bet_pool); var sorted_dict = new SortedDictionary <byte[], double>(bet_pool.get_combinations(), new byte_array_comparator()); foreach (var ii in sorted_dict) { string text_key = " "; foreach (var k in ii.Key) { text_key += k.ToString() + ' '; } Console.WriteLine("betpool combination: ['{0}'] '{1}'", text_key, ii.Value); } } client.close(); Console.WriteLine("bye bye"); } catch (Exception e) { Console.WriteLine("oops " + e.Message); } }