Esempio n. 1
0
 private RecordTypeInfo(string name, StructTypeID stid)
 {
     /*
      * private constructor
      */
     this.sTid = stid;
     this.name = name;
 }
Esempio n. 2
0
 /// <summary>Create an empty RecordTypeInfo object.</summary>
 public RecordTypeInfo()
 {
     // A RecordTypeInfo is really just a wrapper around StructTypeID
     // A RecordTypeInfo object is just a collection of TypeInfo objects for each of its fields.
     //private ArrayList<FieldTypeInfo> typeInfos = new ArrayList<FieldTypeInfo>();
     // we keep a hashmap of struct/record names and their type information, as we need it to
     // set filters when reading nested structs. This map is used during deserialization.
     //private Map<String, RecordTypeInfo> structRTIs = new HashMap<String, RecordTypeInfo>();
     sTid = new StructTypeID();
 }
Esempio n. 3
0
        /// <summary>Return the type info of a nested record.</summary>
        /// <remarks>
        /// Return the type info of a nested record. We only consider nesting
        /// to one level.
        /// </remarks>
        /// <param name="name">Name of the nested record</param>
        public virtual Org.Apache.Hadoop.Record.Meta.RecordTypeInfo GetNestedStructTypeInfo
            (string name)
        {
            StructTypeID stid = sTid.FindStruct(name);

            if (null == stid)
            {
                return(null);
            }
            return(new Org.Apache.Hadoop.Record.Meta.RecordTypeInfo(name, stid));
        }
Esempio n. 4
0
        /// <summary>read/skip bytes from stream based on a type</summary>
        /// <exception cref="System.IO.IOException"/>
        public static void Skip(RecordInput rin, string tag, TypeID typeID)
        {
            switch (typeID.typeVal)
            {
            case TypeID.RIOType.Bool:
            {
                rin.ReadBool(tag);
                break;
            }

            case TypeID.RIOType.Buffer:
            {
                rin.ReadBuffer(tag);
                break;
            }

            case TypeID.RIOType.Byte:
            {
                rin.ReadByte(tag);
                break;
            }

            case TypeID.RIOType.Double:
            {
                rin.ReadDouble(tag);
                break;
            }

            case TypeID.RIOType.Float:
            {
                rin.ReadFloat(tag);
                break;
            }

            case TypeID.RIOType.Int:
            {
                rin.ReadInt(tag);
                break;
            }

            case TypeID.RIOType.Long:
            {
                rin.ReadLong(tag);
                break;
            }

            case TypeID.RIOType.Map:
            {
                Index     midx1 = rin.StartMap(tag);
                MapTypeID mtID  = (MapTypeID)typeID;
                for (; !midx1.Done(); midx1.Incr())
                {
                    Skip(rin, tag, mtID.GetKeyTypeID());
                    Skip(rin, tag, mtID.GetValueTypeID());
                }
                rin.EndMap(tag);
                break;
            }

            case TypeID.RIOType.String:
            {
                rin.ReadString(tag);
                break;
            }

            case TypeID.RIOType.Struct:
            {
                rin.StartRecord(tag);
                // read past each field in the struct
                StructTypeID stID = (StructTypeID)typeID;
                IEnumerator <FieldTypeInfo> it = stID.GetFieldTypeInfos().GetEnumerator();
                while (it.HasNext())
                {
                    FieldTypeInfo tInfo = it.Next();
                    Skip(rin, tag, tInfo.GetTypeID());
                }
                rin.EndRecord(tag);
                break;
            }

            case TypeID.RIOType.Vector:
            {
                Index        vidx1 = rin.StartVector(tag);
                VectorTypeID vtID  = (VectorTypeID)typeID;
                for (; !vidx1.Done(); vidx1.Incr())
                {
                    Skip(rin, tag, vtID.GetElementTypeID());
                }
                rin.EndVector(tag);
                break;
            }

            default:
            {
                // shouldn't be here
                throw new IOException("Unknown typeID when skipping bytes");
            }
            }
        }
Esempio n. 5
0
 /// <summary>Create a RecordTypeInfo object representing a record with the given name
 ///     </summary>
 /// <param name="name">Name of the record</param>
 public RecordTypeInfo(string name)
 {
     this.name = name;
     sTid      = new StructTypeID();
 }