Exemplo n.º 1
0
        static void AddPrefixTableEntry(ref SCHEMA_PREFIX_TABLE t, byte[] s)
        {
            PrefixTableEntry[] nt = new PrefixTableEntry[t.PrefixCount + 1];
            Array.Copy(t.pPrefixEntry, nt, t.PrefixCount);
            // Find a prefix index that's not in use.
            Random rnd   = new Random();
            uint   idx   = 0;
            bool   found = false;

            while (!found)
            {
                found = true;
                idx   = (uint)rnd.Next(0, 65535);
                for (int i = 0; i < t.PrefixCount; ++i)
                {
                    if (idx == t.pPrefixEntry[i].ndx)
                    {
                        found = false;
                        break;
                    }
                }
            }

            nt[nt.Length + 1]                 = new PrefixTableEntry();
            nt[nt.Length + 1].ndx             = idx;
            nt[nt.Length + 1].prefix.length   = (uint)s.Length;
            nt[nt.Length + 1].prefix.elements = s;
            t.PrefixCount++;
            t.pPrefixEntry = nt;
        }
Exemplo n.º 2
0
        static PrefixTableEntry MakePrefixTableEntry(string oid, uint index)
        {
            PrefixTableEntry entry = new PrefixTableEntry();

            entry.ndx = index;
            byte[] bo = ToBinary(oid);
            entry.prefix.length   = (uint)bo.Length;
            entry.prefix.elements = bo;
            return(entry);
        }