Exemplo n.º 1
0
        public Capnproto.BuilderArena.AllocateResult allocate(int amount)
        {
            int len = this.segments.Count;
            // we allocate the first segment in the constructor.
            int result = this.segments[len - 1].allocate(amount);

            if (result != Capnproto.SegmentBuilder.FAILED_ALLOCATION)
            {
                return(new Capnproto.BuilderArena.AllocateResult(this.segments[len - 1], result));
            }
            // allocate_owned_memory
            int size = System.Math.Max(amount, this.nextSize);

            Capnproto.SegmentBuilder newSegment = new Capnproto.SegmentBuilder(java.nio.ByteBuffer.allocate(size * Capnproto.Constants.BYTES_PER_WORD), this);
            switch (this.allocationStrategy.ordinal())
            {
            case 1:
            {
                this.nextSize += size;
                break;
            }

            default:
            {
                break;
            }
            }
            // --------
            newSegment.buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
            newSegment.id = len;
            this.segments.Add(newSegment);
            return(new Capnproto.BuilderArena.AllocateResult(newSegment, newSegment.allocate(amount)));
        }
Exemplo n.º 2
0
 public BuilderArena(int firstSegmentSizeWords, Capnproto.BuilderArena.AllocationStrategy allocationStrategy)
 {
     this.segments           = new System.Collections.Generic.List <Capnproto.SegmentBuilder>();
     this.nextSize           = firstSegmentSizeWords;
     this.allocationStrategy = allocationStrategy;
     Capnproto.SegmentBuilder segment0 = new Capnproto.SegmentBuilder(java.nio.ByteBuffer.allocate(firstSegmentSizeWords * Capnproto.Constants.BYTES_PER_WORD), this);
     segment0.buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
     this.segments.Add(segment0);
 }
Exemplo n.º 3
0
 public StructBuilder(Capnproto.SegmentBuilder segment, int data, int pointers, int dataSize, short pointerCount)
 {
     // byte offset to data section
     // word offset of pointer section
     // in bits
     this.segment      = segment;
     this.data         = data;
     this.pointers     = pointers;
     this.dataSize     = dataSize;
     this.pointerCount = pointerCount;
 }
Exemplo n.º 4
0
 public ListBuilder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount)
 {
     // byte offset to front of list
     // in bits
     // in bits
     this.segment            = segment;
     this.ptr                = ptr;
     this.elementCount       = elementCount;
     this.step               = step;
     this.structDataSize     = structDataSize;
     this.structPointerCount = structPointerCount;
 }
Exemplo n.º 5
0
 public java.nio.ByteBuffer[] getSegmentsForOutput()
 {
     java.nio.ByteBuffer[] result = new java.nio.ByteBuffer[this.segments.Count];
     for (int ii = 0; ii < this.segments.Count; ++ii)
     {
         Capnproto.SegmentBuilder segment = segments[ii];
         segment.buffer.rewind();
         java.nio.ByteBuffer slice = segment.buffer.slice();
         slice.limit(segment.currentSize() * Capnproto.Constants.BYTES_PER_WORD);
         slice.order(java.nio.ByteOrder.LITTLE_ENDIAN);
         result[ii] = slice;
     }
     return(result);
 }
Exemplo n.º 6
0
 private Capnproto.AnyPointer.Builder getRootInternal()
 {
     Capnproto.SegmentBuilder rootSegment = this.arena.segments[0];
     if (rootSegment.currentSize() == 0)
     {
         int location = rootSegment.allocate(1);
         if (location == Capnproto.SegmentBuilder.FAILED_ALLOCATION)
         {
             throw new System.Exception("could not allocate root pointer");
         }
         if (location != 0)
         {
             throw new System.Exception("First allocated word of new segment was not at offset 0");
         }
         return(new Capnproto.AnyPointer.Builder(rootSegment, location));
     }
     return(new Capnproto.AnyPointer.Builder(rootSegment, 0));
 }
Exemplo n.º 7
0
 public override Capnproto.StructList.Builder <ElementBuilder> fromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer)
 {
     return(Capnproto.WireHelpers.getWritableStructListPointer(this, pointer, segment, SingleFactory.StructSize(), null, 0));
 }
Exemplo n.º 8
0
 public override Capnproto.StructList.Builder <ElementBuilder> constructBuilder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount)
 {
     return(new Capnproto.StructList.Builder <ElementBuilder>(SingleFactory, segment, ptr, elementCount, step, structDataSize, structPointerCount));
 }
Exemplo n.º 9
0
 public void setPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, Capnproto.Data.Reader value)
 {
     Capnproto.WireHelpers.setDataPointer(pointer, segment, value);
 }
Exemplo n.º 10
0
 public Capnproto.Data.Builder fromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer)
 {
     return(Capnproto.WireHelpers.getWritableDataPointer(pointer, segment, null, 0, 0));
 }
Exemplo n.º 11
0
 public Builder(Capnproto.SegmentBuilder segment, int pointer)
 {
     this.segment = segment;
     this.pointer = pointer;
 }
Exemplo n.º 12
0
 public Capnproto.AnyPointer.Builder fromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer)
 {
     return(new Capnproto.AnyPointer.Builder(segment, pointer));
 }
Exemplo n.º 13
0
 public AllocateResult(Capnproto.SegmentBuilder segment, int offset)
 {
     // offset to the beginning of the of allocated memory
     this.segment = segment;
     this.offset  = offset;
 }
Exemplo n.º 14
0
 public sealed override Capnproto.EnumList.Builder <T> constructBuilder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount)
 {
     return(new Capnproto.EnumList.Builder <T>(values, segment, ptr, elementCount, step, structDataSize, structPointerCount));
 }
Exemplo n.º 15
0
 public sealed override Capnproto.PrimitiveList.Boolean.Builder constructBuilder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount)
 {
     return(new Capnproto.PrimitiveList.Boolean.Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount));
 }
Exemplo n.º 16
0
 public Builder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount) : base(segment, ptr, elementCount, step, structDataSize, structPointerCount)
 {
 }
Exemplo n.º 17
0
 public override Capnproto.TextList.Builder constructBuilder(Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount)
 {
     return(new Capnproto.TextList.Builder(segment, ptr, elementCount, step, structDataSize, structPointerCount));
 }
Exemplo n.º 18
0
 public Builder fromPointerBuilderRefDefault(Capnproto.SegmentBuilder segment, int pointer, Capnproto.SegmentReader defaultSegment, int defaultOffset)
 {
     return(Capnproto.WireHelpers.getWritableStructPointer(this, pointer, segment, this.StructSize(), defaultSegment, defaultOffset));
 }
Exemplo n.º 19
0
 public Capnproto.AnyPointer.Builder initFromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, int elementCount)
 {
     Capnproto.AnyPointer.Builder result = new Capnproto.AnyPointer.Builder(segment, pointer);
     result.Clear();
     return(result);
 }
Exemplo n.º 20
0
 public Builder fromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer)
 {
     return(Capnproto.WireHelpers.getWritableStructPointer(this, pointer, segment, this.StructSize(), null, 0));
 }
Exemplo n.º 21
0
 public Capnproto.Data.Builder fromPointerBuilderBlobDefault(Capnproto.SegmentBuilder segment, int pointer, java.nio.ByteBuffer defaultBuffer, int defaultOffset, int defaultSize)
 {
     return(Capnproto.WireHelpers.getWritableDataPointer(pointer, segment, defaultBuffer, defaultOffset, defaultSize));
 }
Exemplo n.º 22
0
 public Builder initFromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, int elementCount)
 {
     return(Capnproto.WireHelpers.initStructPointer(this, pointer, segment, this.StructSize()));
 }
Exemplo n.º 23
0
 public Capnproto.Data.Builder initFromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, int size)
 {
     return(Capnproto.WireHelpers.initDataPointer(pointer, segment, size));
 }
Exemplo n.º 24
0
 public void setPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, Reader value)
 {
     Capnproto.WireHelpers.setStructPointer(segment, pointer, value);
 }
Exemplo n.º 25
0
 public Builder(Capnproto.StructBuilder.Factory <T> factory, Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount) : base(segment, ptr, elementCount, step, structDataSize, structPointerCount)
 {
     this.SingleFactory = factory;
 }
Exemplo n.º 26
0
 public abstract Builder constructBuilder(Capnproto.SegmentBuilder arg1, int arg2, int arg3, int arg4, short arg5);
Exemplo n.º 27
0
 public override Capnproto.StructList.Builder <ElementBuilder> fromPointerBuilderRefDefault(Capnproto.SegmentBuilder segment, int pointer, Capnproto.SegmentReader defaultSegment, int defaultOffset)
 {
     return(Capnproto.WireHelpers.getWritableStructListPointer(this, pointer, segment, SingleFactory.StructSize(), defaultSegment, defaultOffset));
 }
Exemplo n.º 28
0
 public Builder(T[] values, Capnproto.SegmentBuilder segment, int ptr, int elementCount, int step, int structDataSize, short structPointerCount) : base(segment, ptr, elementCount, step, structDataSize, structPointerCount)
 {
     this.values = values;
 }
Exemplo n.º 29
0
 public override Capnproto.StructList.Builder <ElementBuilder> initFromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, int elementCount)
 {
     return(Capnproto.WireHelpers.initStructListPointer(this, pointer, segment, elementCount, SingleFactory.StructSize()));
 }
Exemplo n.º 30
0
 public virtual Builder initFromPointerBuilder(Capnproto.SegmentBuilder segment, int pointer, int elementCount)
 {
     return(Capnproto.WireHelpers.initListPointer(this, pointer, segment, elementCount, this.elementSize));
 }