Пример #1
0
        public void writeCompressed(ExtendedDataOutput output)
        {
            short flag = ((short)(DATA_FORM.DF_TABLE) << 8 | 8 & 0xff); //8: table type TODO: add table type

            output.writeShort(flag);

            int rows = this.rows();
            int cols = this.columns();

            output.writeInt(rows);
            output.writeInt(cols);
            output.writeString("");     //table name
            for (int i = 0; i < cols; i++)
            {
                output.writeString(this.getColumnName(i));
            }

            for (int i = 0; i < cols; i++)
            {
                AbstractVector v = (AbstractVector)this.getColumn(i);
                if (v.getDataType() == DATA_TYPE.DT_SYMBOL)
                {
                    v.write((ExtendedDataOutput)output);
                }
                else
                {
                    v.writeCompressed((ExtendedDataOutput)output);
                }
                output.flush();
            }
        }
        public virtual void write(ExtendedDataOutput @out)
        {
            int flag = ((int)df_ << 8) + (int)getDataType();

            @out.writeShort(flag);
            @out.writeInt(rows());
            @out.writeInt(columns());
            writeVectorToOutputStream(@out);
        }
Пример #3
0
        public virtual void write(ExtendedDataOutput @out, SymbolBaseCollection collection)
        {
            int dataType = (int)getDataType() + 128;
            int flag     = ((int)DATA_FORM.DF_VECTOR << 8) + dataType;

            @out.writeShort(flag);
            @out.writeInt(rows());
            @out.writeInt(columns());
            collection.write(@out, @base);
            @out.writeIntArray(values.ToArray());
        }
Пример #4
0
        public virtual void write(ExtendedDataOutput @out)
        {
            int count = syms.Count;

            @out.writeInt(0);
            @out.writeInt(count);
            for (int i = 0; i < count; ++i)
            {
                @out.writeString(syms[i]);
            }
        }
Пример #5
0
        public virtual void write(ExtendedDataOutput @out)
        {
            int flag = ((int)df_ << 8) + (int)getDataType();

            if (this is BasicSymbolVector)
            {
                flag += 128;
            }
            @out.writeShort(flag);
            @out.writeInt(rows());
            @out.writeInt(columns());
            writeVectorToOutputStream(@out);
        }
Пример #6
0
 public override void serialize(int start, int count, ExtendedDataOutput @out)
 {
     for (int i = 0; i < count; ++i)
     {
         @out.writeInt(values[start + i]);
     }
 }
        public void write(ExtendedDataOutput @out)
        {
            int flag = ((int)DATA_FORM.DF_SCALAR << 8) + (int)getDataType();

            @out.writeInt(flag);
            writeScalarToOutputStream(@out);
        }
 protected internal override void writeVectorToOutputStream(ExtendedDataOutput @out)
 {
     foreach (short value in values)
     {
         @out.writeInt(value);
     }
 }
Пример #9
0
        public virtual void write(ExtendedDataOutput @out)
        {
            int flag = ((int)DATA_FORM.DF_TABLE << 8) + (int)getDataType();

            @out.writeShort(flag);
            @out.writeInt(rows());
            @out.writeInt(columns());
            @out.writeString(""); //table name
            foreach (string colName in names_)
            {
                @out.writeString(colName);
            }
            foreach (IVector vector in columns_)
            {
                vector.write(@out);
            }
        }
Пример #10
0
        public virtual void write(ExtendedDataOutput output)
        {
            int length = 27 + AbstractExtendedDataOutputStream.getUTFlength(path, 0, 0) + sites.Count;

            foreach (string site in sites)
            {
                length += AbstractExtendedDataOutputStream.getUTFlength(site, 0, 0);
            }
            output.writeShort(length);
            output.writeString(path);
            output.write(id);
            output.writeInt(version);
            output.writeInt(size_Renamed);
            output.writeByte(flag);
            output.writeByte(sites.Count);
            foreach (string site in sites)
            {
                output.writeUTF(site);
            }
        }
Пример #11
0
        public virtual void write(ExtendedDataOutput @out)
        {
            int flag = ((int)DATA_FORM.DF_MATRIX << 8) + (int)getDataType();

            @out.writeShort(flag);
            byte labelFlag = (byte)((hasRowLabel() ? 1 : 0) + (hasColumnLabel() ? 2 : 0));

            @out.writeByte(labelFlag);
            if (hasRowLabel())
            {
                rowLabels.write(@out);
            }
            if (hasColumnLabel())
            {
                columnLabels.write(@out);
            }
            @out.writeShort(flag);
            @out.writeInt(rows());
            @out.writeInt(columns());
            writeVectorToOutputStream(@out);
        }
Пример #12
0
        protected internal override void writeVectorToOutputStream(ExtendedDataOutput @out)
        {
            int    indexCount   = rowIndices.Count;
            int    cols         = valueVec.rows();
            int    countBytes   = 1;
            UInt32 maxCount     = 255;
            int    indicesPos   = 0;
            int    valuesOffect = 0;

            while (indicesPos < indexCount)
            {
                int byteRequest = 4;
                int curRows     = 0;
                int indiceCount = 1;
                while (byteRequest < BUF_SIZE && indicesPos + indiceCount - 1 < indexCount && indiceCount < 65536)
                {
                    int curIndiceOffect = indicesPos + indiceCount - 1;
                    int index           = curIndiceOffect == 0 ? rowIndices[curIndiceOffect] : rowIndices[curIndiceOffect] - rowIndices[curIndiceOffect - 1];
                    while (index > maxCount)
                    {
                        byteRequest += (indiceCount - 1) * countBytes;
                        countBytes  *= 2;
                        maxCount     = Math.Min(UInt32.MaxValue, (UInt32)1 << (8 * countBytes) - 1);
                    }
                    curRows += index;
                    indiceCount++;
                    byteRequest += countBytes + baseUnitLength_ * index;
                }
                indiceCount--;
                @out.writeShort(indiceCount);
                @out.writeByte(countBytes);
                @out.writeByte(0);
                for (int i = 0; i < indiceCount; ++i)
                {
                    int index = indicesPos + i == 0 ? rowIndices[indicesPos + i] : rowIndices[indicesPos + i] - rowIndices[indicesPos + i - 1];
                    if (countBytes == 1)
                    {
                        @out.writeByte(index);
                    }
                    else if (countBytes == 2)
                    {
                        @out.writeShort(index);
                    }
                    else
                    {
                        @out.writeInt(index);
                    }
                }
                valueVec.serialize(valuesOffect, curRows, @out);
                indicesPos   += indiceCount;
                valuesOffect += curRows;
            }
        }
Пример #13
0
        public virtual void write(ExtendedDataOutput @out, SymbolBase @base)
        {
            bool existing = false;
            int  id       = 0;

            if (existingBases == null)
            {
                existingBases        = new Dictionary <SymbolBase, int>();
                existingBases[@base] = 0;
            }
            else
            {
                int?curId = existingBases[@base];
                if (curId != null)
                {
                    existing = true;
                    id       = curId.Value;
                }
                else
                {
                    id = existingBases.Count;
                    existingBases[@base] = id;
                }
            }
            @out.writeInt(id);
            if (existing)
            {
                @out.writeInt(0);
            }
            else
            {
                int size = @base.size();
                @out.writeInt(size);
                for (int i = 0; i < size; ++i)
                {
                    @out.writeString(@base.getSymbol(i));
                }
            }
        }
Пример #14
0
 protected override void writeScalarToOutputStream(ExtendedDataOutput @out)
 {
     @out.writeInt(value);
 }