public static GenericProtocolPair Get(AvroProtocol local, AvroProtocol remote)
        {
            lock (GUARD)
            {
                if (!CACHE.TryGetValue(local.MD5, out var genericProtocolPairs))
                {
                    genericProtocolPairs = new Dictionary <byte[], GenericProtocolPair>(COMPARE);
                    CACHE.Add(local.MD5, genericProtocolPairs);
                }

                if (!genericProtocolPairs.TryGetValue(remote.MD5, out var genericProtocolPair))
                {
                    genericProtocolPair = new GenericProtocolPair(local, remote);
                    genericProtocolPairs.Add(remote.MD5, genericProtocolPair);
                }
                return(genericProtocolPair);
            }
        }
示例#2
0
 public GenericResponder(AvroProtocol local, AvroProtocol remote)
 {
     Local         = local;
     Remote        = remote;
     _protocolPair = GenericProtocolPair.Get(local, remote);
 }