void RemoveHoldBackPackets(string pid, Global.PacketType pType) { if (pType == Global.PacketType.Parity) { if (HoldBackParity.ContainsKey(pid) == true) { Destroy(HoldBackParity[pid]); HoldBackParity.Remove(pid); } } else { if (HoldbackPackets.ContainsKey(pid) == true) { Destroy(HoldbackPackets[pid]); HoldbackPackets.Remove(pid); } } }
public Color GetPacketColor(string origin, string destination, string pid, Global.PacketType pType, Color pColor) { Color color = Color.yellow; // Packet type is mcd if (pType == Global.PacketType.MCD) { string org = "MCD" + origin; if (ColorsByOrigin.ContainsKey(org) == true) { color = ColorsByOrigin[org]; } else { // Debug.Log("MCD = " + org + " : " + mcdColorIndex); ColorsByOrigin.Add(org, mcdColor[mcdColorIndex]); color = ColorsByOrigin[org]; mcdColorIndex++; } // Debug.Log("COLOR = " + color + " : " + pid); return(color); } // If packet is NAK else if (pType == Global.PacketType.NAK) { return(new Color(0.925f, 0.066f, 0.6156f)); } // If packet type is MCD cache else if (pType == Global.PacketType.MCDcache) { return(mcdCacheColor); } else if (pType == Global.PacketType.Parity) { return(Color.white); } // Packet type is HC else if (pType == Global.PacketType.HC) { return(new Color(1f, 0, 1f)); } // Packet type is qos if (pType == Global.PacketType.Qos) { string org = "QOS" + origin; if (ColorsByOrigin.ContainsKey(org) == true) { color = ColorsByOrigin[org]; } else { ColorsByOrigin.Add(org, qosColor[qosColorIndex]); color = ColorsByOrigin[org]; qosColorIndex++; } // Debug.Log("COLOR = " + color + " : " + pid); return(color); } // FOr all normal packets switch (colorPatternIndex) { case Global.ColorPattern.OriginBased: // Color Pattern 1 string org = pType.ToString() + origin; if (ColorsByOrigin.ContainsKey(org) == true) { color = ColorsByOrigin[org]; } else { // ColorsByOrigin.Add(origin, UnityEngine.Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f)); ColorsByOrigin.Add(org, originColor[originColorIndex]); color = ColorsByOrigin[org]; originColorIndex = (originColorIndex + 1) % originColor.Count; } break; case Global.ColorPattern.RequestReply: // Color Pattern 2 Tuple <string, string, string> fwdPair = new Tuple <string, string, string>(origin, destination, pid); Tuple <string, string, string> revPair = new Tuple <string, string, string>(destination, origin, pid); if (paths.Contains(fwdPair) == true) { color = colorRequest; } else if (paths.Contains(revPair) == true) { color = colorReply; } else { paths.Add(fwdPair); color = colorRequest; } break; case Global.ColorPattern.PathBased: // Color Pattern 3 Tuple <string, string> pair = new Tuple <string, string>(origin, destination); // If the pair of origin and destination is found in dictionary, return the color if (ColorsByPath.ContainsKey(pair) == true) { color = ColorsByPath[pair]; } else { // ColorsByPath.Add(pair, UnityEngine.Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f)); ColorsByPath.Add(pair, pathColor[pathColorIndex]); color = ColorsByPath[pair]; pathColorIndex = (pathColorIndex + 1) % pathColor.Count; } break; case Global.ColorPattern.None: color = Color.blue; break; } return(color); }