public void DoHandle(ProtocolIdType pid, Thrift.Protocol.TProtocol tProtocol) { System.Action <Thrift.Protocol.TProtocol> handler = null; if (true == m_handlers.TryGetValue(pid, out handler)) { handler(tProtocol); return; } throw new ArgumentException(); }
public override void Read(Thrift.Protocol.TProtocol proto) { base.Read(proto); if (modified_flag == true) { output_msg.set_from((ContestsType)this); // clones by value with additional sensitivity to delta-state w.r.t. previous 'output_msg' contents HashSet <string> rejected_contests; var contests = output_msg.get_contest_as_fragile(); if (contests != null) { rejected_contests = new HashSet <string>(contests.Keys); } else { rejected_contests = new HashSet <string>(); } var meetings = output_msg.get_meeting_as_fragile(); if (meetings != null) { foreach (var meeting in meetings.ToList()) { MeetingType msg_meeting = null; var markets = meeting.Value.get_markets_as_fragile(); if (markets != null) { foreach (var market in markets.ToList()) { var type = market.Value.get_type(); if (type != null && type.Value == BetTypeEnum.BetTypeEnum_WIN) { var legs = market.Value.get_legs(); if (legs != null) { foreach (var leg in legs) { rejected_contests.Remove(leg.Value); } } } else { meeting.Value.set_markets_element(market.Key, null); if (msg_meeting == null) { msg_meeting = base.get_meeting_element(meeting.Key); } msg_meeting.get_markets_element(market.Key).skip_on_read_flag = true; } } } if (meeting.Value.get_markets() == null) { output_msg.set_meeting_element(meeting.Key, null); if (msg_meeting == null) { msg_meeting = base.get_meeting_element(meeting.Key); } msg_meeting.skip_on_read_flag = true; } } } foreach (var rc in rejected_contests) { output_msg.set_contest_element(rc, null); base.get_contest_element(rc).skip_on_read_flag = true; } contests = output_msg.get_contest_as_fragile(); if (contests != null) { foreach (var contest in contests.ToList()) { ContestType msg_contest = null; var markets = contest.Value.get_markets_as_fragile(); if (markets != null) { foreach (var market in markets.ToList()) { var type = market.Value.get_type(); if (type == null || type.Value != BetTypeEnum.BetTypeEnum_WIN) { contest.Value.set_markets_element(market.Key, null); if (msg_contest == null) { msg_contest = base.get_contest_element(contest.Key); } msg_contest.get_markets_element(market.Key).skip_on_read_flag = true; } } } if (contest.Value.get_markets() == null) { output_msg.set_contest_element(contest.Key, null); if (msg_contest == null) { msg_contest = base.get_contest_element(contest.Key); } msg_contest.skip_on_read_flag = true; } } } } }