Exemplo n.º 1
0
 // TODO: Make public
 internal CpkColumnInfo(string name, CpkColumnStorage storage, CpkDataType type, CpkValue value = null)
 {
     Name    = name ?? throw new ArgumentNullException(nameof(name));
     Storage = storage;
     Type    = type;
     Value   = value;
 }
Exemplo n.º 2
0
        //// Writing - TODO: This needs a rewrite since the "Data" type isn't properly supported.

        /// <summary>
        /// Writes a value based on the given <see cref="CpkValue"/> and <see cref="CpkColumnInfo"/>.
        /// </summary>
        /// <param name="bw"></param>
        /// <param name="val"></param>
        /// <param name="col"></param>
        /// <param name="strings"></param>
        /// <param name="data"></param>
        private void WriteValue(BinaryWriterX bw, CpkValue val, CpkColumnInfo col, Dictionary <string, int> strings = null, Dictionary <int, int> data = null)
        {
            switch (val.Type)
            {
            case CpkDataType.UInt8:
                bw.Write((byte)val.Value);
                break;

            case CpkDataType.SInt8:
                bw.Write((sbyte)val.Value);
                break;

            case CpkDataType.UInt16:
                bw.Write((ushort)val.Value);
                break;

            case CpkDataType.SInt16:
                bw.Write((short)val.Value);
                break;

            case CpkDataType.UInt32:
                bw.Write((uint)val.Value);
                break;

            case CpkDataType.SInt32:
                bw.Write((int)val.Value);
                break;

            case CpkDataType.UInt64:
                bw.Write((ulong)val.Value);
                break;

            case CpkDataType.SInt64:
                bw.Write((long)val.Value);
                break;

            case CpkDataType.Float:
                bw.Write((float)val.Value);
                break;

            case CpkDataType.String:
                bw.Write(strings[(string)val.Value]);
                break;

            case CpkDataType.Data:
                bw.Write((int)val.Value);
                bw.Write(data[(int)val.Value]);
                break;
            }
        }
Exemplo n.º 3
0
 public void Add(string name, CpkValue value)
 {
     _values[name] = value;
 }
Exemplo n.º 4
0
 public static CpkColumnInfo CreateZero(string name, CpkDataType type)
 {
     return(new CpkColumnInfo(name, CpkColumnStorage.Default, type, CpkValue.Default(type)));
 }
Exemplo n.º 5
0
 // TODO: Remove methods and do creation externally
 public static CpkColumnInfo CreateConst(string name, CpkValue value)
 {
     return(new CpkColumnInfo(name, CpkColumnStorage.Const, value.Type, value));
 }