private static void encodeExclude(Exclude exclude, TlvEncoder encoder) { int saveLength = encoder.getLength(); // TODO: Do we want to order the components (except for ANY)? // Encode the entries backwards. for (int i = exclude.size() - 1; i >= 0; --i) { Exclude.Entry entry = exclude.get(i); if (entry.getType() == net.named_data.jndn.Exclude.Type.ANY) encoder.writeTypeAndLength(net.named_data.jndn.encoding.tlv.Tlv.Any, 0); else encodeNameComponent(entry.getComponent(), encoder); } encoder.writeTypeAndLength(net.named_data.jndn.encoding.tlv.Tlv.Exclude, encoder.getLength() - saveLength); }
/// <summary> /// Create a list of ExcludeEntry from the Exclude object. /// </summary> /// /// <param name="exclude">The Exclude object to read.</param> /// <returns>A new list of ExcludeEntry.</returns> private static ArrayList getExcludeEntries(Exclude exclude) { ArrayList entries = new ArrayList(); for (int i = 0; i < exclude.size(); ++i) { if (exclude.get(i).getType() == net.named_data.jndn.Exclude.Type.ANY) { if (entries.Count == 0) // Add a "beginning ANY". ILOG.J2CsMapping.Collections.Collections.Add(entries,new Producer.ExcludeEntry (new Name.Component(), true)); else // Set anyFollowsComponent of the final component. ((Producer.ExcludeEntry ) entries[entries.Count - 1]).anyFollowsComponent_ = true; } else ILOG.J2CsMapping.Collections.Collections.Add(entries,new Producer.ExcludeEntry (exclude.get(i).getComponent(), false)); } return entries; }