Esempio n. 1
0
        private void CreateCallDataBufferLayout()
        {
            int num1 = XDRPCExecutionState.ArgumentSize * (8 + this.totalArgumentCount + this.FloatingPointArguments.Length);
            int num2 = 2;

            this.bufferData    = new XDRPCExecutionState.ArgumentBufferData[this.IntegerArguments.Length + num2];
            this.referenceData = new XDRPCExecutionState.ArgumentBufferData[this.IntegerArguments.Length];
            int currOffset = num1;

            for (int index = 0; index < this.IntegerArguments.Length + num2; ++index)
            {
                XDRPCExecutionState.ArgumentBufferData argumentBufferData = new XDRPCExecutionState.ArgumentBufferData();
                argumentBufferData.BufferOffset = currOffset;
                argumentBufferData.BufferSize   = index >= num2 ? this.IntegerArguments[index - num2].GetRequiredBufferSize() : this.Options.GetRequiredBufferSize(index);
                currOffset += argumentBufferData.BufferSize;
                XDRPCExecutionState.AlignBufferOffset(ref currOffset);
                this.bufferData[index] = argumentBufferData;
            }
            for (int index = 0; index < this.IntegerArguments.Length; ++index)
            {
                XDRPCExecutionState.ArgumentBufferData argumentBufferData = new XDRPCExecutionState.ArgumentBufferData();
                argumentBufferData.BufferOffset = currOffset;
                argumentBufferData.BufferSize   = this.IntegerArguments[index].GetRequiredReferenceSize();
                currOffset += argumentBufferData.BufferSize;
                XDRPCExecutionState.AlignBufferOffset(ref currOffset);
                this.referenceData[index] = argumentBufferData;
            }
            this.totalBufferSize = currOffset;
        }
        private XDRPCArrayArgumentInfo <T> .ArrayElementData GenerateArrayBufferData(
            XDRPCArgumentInfo info,
            ref int referenceOffset)
        {
            XDRPCArrayArgumentInfo <T> .ArrayElementData arrayElementData = new XDRPCArrayArgumentInfo <T> .ArrayElementData();

            arrayElementData.Info            = info;
            arrayElementData.ReferenceOffset = referenceOffset;
            arrayElementData.ReferenceSize   = info.GetRequiredReferenceSize();
            referenceOffset += arrayElementData.ReferenceSize;
            XDRPCExecutionState.AlignBufferOffset(ref referenceOffset);
            return(arrayElementData);
        }