private byte[] GetBodyBytes()
        {
            var tempBuffer = new WspBuffer();

            tempBuffer.Add(_iClientVersion);

            tempBuffer.Add(_fClientIsRemote);

            var bufferForBlob1 = new WspBuffer();

            bufferForBlob1.Add(cPropSets);

            PropertySet1.ToBytes(bufferForBlob1);

            PropertySet2.ToBytes(bufferForBlob1);

            _cbBlob1 = (uint)bufferForBlob1.WriteOffset;

            tempBuffer.Add(_cbBlob1);

            var bufferForBlob2 = new WspBuffer();

            bufferForBlob2.Add(cExtPropSet, 8);

            foreach (var propertySet in aPropertySets)
            {
                propertySet.ToBytes(bufferForBlob2);
            }

            _cbBlob2 = (uint)bufferForBlob2.WriteOffset;

            tempBuffer.Add(_cbBlob2, 8);

            tempBuffer.AddRange(new byte[12]);

            tempBuffer.AddUnicodeString(MachineName);

            tempBuffer.AddUnicodeString(UserName);

            tempBuffer.AlignWrite(8);

            tempBuffer.AddRange(bufferForBlob1.GetBytes());

            tempBuffer.AlignWrite(8);

            tempBuffer.AddRange(bufferForBlob2.GetBytes());

            return(tempBuffer.GetBytes());
        }
Exemple #2
0
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(cDims);

            buffer.Add(fFeatures);

            buffer.Add(cbElements);

            foreach (var bound in Rgsabound)
            {
                bound.ToBytes(buffer);
            }

            foreach (var data in vData)
            {
                if (data is IWspStructure)
                {
                    buffer.AlignWrite(4);
                    (data as IWspStructure).ToBytes(buffer);
                }
                else
                {
                    buffer.Add(data, 4);
                }
            }
        }
        public byte[] GetBodyBytes()
        {
            var buffer = new WspBuffer();

            buffer.Add(_hCursor);

            buffer.Add(_cbRow);

            var tempBuffer = new WspBuffer();

            tempBuffer.Add(cColumns);

            foreach (var column in aColumns)
            {
                tempBuffer.AlignWrite(4);

                column.ToBytes(tempBuffer);
            }

            var bytesAfterDummy = tempBuffer.GetBytes();

            _cbBindingDesc = (uint)bytesAfterDummy.Length;

            buffer.Add(_cbBindingDesc);

            buffer.Add(_dummy);

            buffer.AddRange(bytesAfterDummy);

            return(buffer.GetBytes());
        }
Exemple #4
0
        public byte[] GetBodyBytes()
        {
            var buffer = new WspBuffer();

            buffer.Add(_wid);

            buffer.Add(_cbSoFar);

            var tempBuffer = new WspBuffer();

            PropSpec.ToBytes(tempBuffer);

            var propSpecBytes = tempBuffer.GetBytes();

            _cbPropSpec = (uint)propSpecBytes.Length;

            buffer.Add(_cbPropSpec);

            buffer.Add(_cbChunk);

            buffer.AddRange(propSpecBytes);

            buffer.AlignWrite(4);

            return(buffer.GetBytes());
        }
Exemple #5
0
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(type);
            buffer.AlignWrite(4);

            buffer.Add(ccAlias);

            if (ccAlias != 0)
            {
                buffer.AddUnicodeString(Alias, false);
            }

            buffer.Add(idColumn);

            switch (type)
            {
            case CAggregSpec_type_Values.DBAGGTTYPE_FIRST:
            case CAggregSpec_type_Values.DBAGGTTYPE_BYFREQ:
            case CAggregSpec_type_Values.DBAGGTTYPE_REPRESENTATIVEOF:
                buffer.Add(ulMaxNumToReturn);
                break;
            }

            switch (type)
            {
            case CAggregSpec_type_Values.DBAGGTTYPE_REPRESENTATIVEOF:
                buffer.Add(idRepresentative);
                break;
            }
        }
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(_cNode);

            foreach (var node in _paNode)
            {
                buffer.AlignWrite(4);
                node.ToBytes(buffer);
            }
        }
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(count);

            foreach (var sort in sortArray)
            {
                buffer.AlignWrite(4);

                sort.ToBytes(buffer);
            }
        }
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(_relop);

            _Property.ToBytes(buffer);

            buffer.AlignWrite(4);

            _prval.ToBytes(buffer);

            buffer.Add(_lcid, 4);
        }
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(cCount);

            if (cCount != 0)
            {
                foreach (var spec in AggregSpecs)
                {
                    buffer.AlignWrite(4);
                    spec.ToBytes(buffer);
                }
            }
        }
Exemple #10
0
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(_lcid);

            buffer.Add(cRange);

            foreach (var range in aRangeBegin)
            {
                buffer.AlignWrite(4);

                range.ToBytes(buffer);
            }
        }
Exemple #11
0
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(guidPropertySet);

            buffer.Add(cProperties, 4);

            foreach (var prop in aProps)
            {
                buffer.AlignWrite(4);

                prop.ToBytes(buffer);
            }
        }
Exemple #12
0
        public void ToBytes(WspBuffer buffer)
        {
            buffer.Add(vVectorElements);

            foreach (var data in vVectorData)
            {
                if (data is IWspStructure)
                {
                    buffer.AlignWrite(4);
                    ((IWspStructure)data).ToBytes(buffer);
                }
                else
                {
                    buffer.Add(data, 4);
                }
            }
        }
        public byte[] GetBodyBytes()
        {
            var buffer = new WspBuffer();

            var tempBuffer = new WspBuffer();

            tempBuffer.Add(Size);

            int tempOffset = tempBuffer.WriteOffset;

            byte CColumnSetPresent;

            if (ColumnSet.HasValue)
            {
                CColumnSetPresent = 0x01;

                tempBuffer.Add(CColumnSetPresent);

                tempBuffer.AlignWrite(4);

                ColumnSet.Value.ToBytes(tempBuffer);
            }
            else
            {
                CColumnSetPresent = 0x00;

                tempBuffer.Add(CColumnSetPresent);
            }

            byte CRestrictionPresent;

            if (RestrictionArray.HasValue)
            {
                CRestrictionPresent = 0x01;

                tempBuffer.Add(CRestrictionPresent);

                RestrictionArray.Value.ToBytes(tempBuffer);
            }
            else
            {
                CRestrictionPresent = 0x00;

                tempBuffer.Add(CRestrictionPresent);
            }

            byte CSortSetPresent;

            if (SortSet.HasValue)
            {
                CSortSetPresent = 0x01;

                tempBuffer.Add(CSortSetPresent);

                tempBuffer.AlignWrite(4);

                SortSet.Value.ToBytes(tempBuffer);
            }
            else
            {
                CSortSetPresent = 0x00;

                tempBuffer.Add(CSortSetPresent);
            }

            byte CCategorizationSetPresent;

            if (CCategorizationSet.HasValue)
            {
                CCategorizationSetPresent = 0x01;

                tempBuffer.Add(CCategorizationSetPresent);

                tempBuffer.AlignWrite(4);

                CCategorizationSet.Value.ToBytes(tempBuffer);
            }
            else
            {
                CCategorizationSetPresent = 0x00;

                tempBuffer.Add(CCategorizationSetPresent);
            }

            tempBuffer.AlignWrite(4);

            RowSetProperties.ToBytes(tempBuffer);

            PidMapper.ToBytes(tempBuffer);

            GroupArray.ToBytes(tempBuffer);

            tempBuffer.Add(Lcid);

            Size = (uint)tempBuffer.WriteOffset;

            buffer.Add(Size);

            var bytesAfterSize = tempBuffer.GetBytes().Skip(tempOffset).ToArray();

            buffer.AddRange(bytesAfterSize);

            return(buffer.GetBytes());
        }
Exemple #14
0
        public void ToBytes(WspBuffer buffer)
        {
            PropSpec.ToBytes(buffer);

            buffer.Add((uint)vType, 4);

            byte AggregateUsed;

            if (AggregateType.HasValue)
            {
                AggregateUsed = 0x01;

                buffer.Add(AggregateUsed);

                buffer.Add(AggregateType.Value);
            }
            else
            {
                AggregateUsed = 0x00;

                buffer.Add(AggregateUsed);
            }

            byte ValueUsed;

            if (ValueOffset.HasValue && ValueSize.HasValue)
            {
                ValueUsed = 0x01;

                buffer.Add(ValueUsed);

                buffer.AlignWrite(2);

                buffer.Add(ValueOffset.Value);

                buffer.Add(ValueSize.Value);
            }
            else if (!ValueOffset.HasValue && !ValueSize.HasValue)
            {
                ValueUsed = 0x00;

                buffer.Add(ValueUsed);
            }
            else
            {
                throw new InvalidOperationException("ValueOffset and ValueSize should be present or absent at the same time!");
            }

            byte StatusUsed;

            if (StatusOffset.HasValue)
            {
                StatusUsed = 0x01;

                buffer.Add(StatusUsed);

                buffer.AlignWrite(2);

                buffer.Add(StatusOffset.Value);
            }
            else
            {
                StatusUsed = 0x00;

                buffer.Add(StatusUsed);
            }

            byte LengthUsed;

            if (LengthOffset.HasValue)
            {
                LengthUsed = 0x01;

                buffer.Add(LengthUsed);

                buffer.AlignWrite(2);

                buffer.Add(LengthOffset.Value);
            }
            else
            {
                LengthUsed = 0x00;

                buffer.Add(LengthUsed);
            }
        }