Exemplo n.º 1
0
     /**
      * Note - a value of zero for <tt>amountUsedInCurrentRecord</tt> would only ever occur just
      * After a {@link ContinueRecord} had been started.  In the Initial {@link SSTRecord} this 
      * value starts at 8 (for the first {@link UnicodeString} written).  In general, it can be
      * any value between 0 and {@link #MAX_DATA_SIZE}
      */
     private static void ConfirmSize(int expectedSize, UnicodeString s, int amountUsedInCurrentRecord) {
     ContinuableRecordOutput out1 = ContinuableRecordOutput.CreateForCountingOnly();
     out1.WriteContinue();
     for(int i=amountUsedInCurrentRecord; i>0; i--) {
         out1.WriteByte(0);
     }
     int size0 = out1.TotalSize;
     s.Serialize(out1);
     int size1 = out1.TotalSize;
     int actualSize = size1-size0;
     Assert.AreEqual(expectedSize, actualSize);
 }
Exemplo n.º 2
0
        public void Serialize(ContinuableRecordOutput out1)
        {
            out1.WriteInt(_numStrings);
            out1.WriteInt(_numUniqueStrings);

            for (int k = 0; k < strings.Size; k++)
            {
                if (k % ExtSSTRecord.DEFAULT_BUCKET_SIZE == 0)
                {
                    int rOff  = out1.TotalSize;
                    int index = k / ExtSSTRecord.DEFAULT_BUCKET_SIZE;
                    if (index < ExtSSTRecord.MAX_BUCKETS)
                    {
                        //Excel only indexes the first 128 buckets.
                        bucketAbsoluteOffsets[index] = rOff;
                        bucketRelativeOffsets[index] = rOff;
                    }
                }
                UnicodeString s = GetUnicodeString(k);
                s.Serialize(out1);
            }
        }
Exemplo n.º 3
0
 private static int SerializeUnicodeString(UnicodeString us, int offset, byte[] data)
 {
     UnicodeRecordStats urs = new UnicodeRecordStats();
     us.Serialize(urs, offset, data);
     return urs.recordSize;
 }