/// <summary>Create a collection based on an existing list of group tags</summary>
        /// <param name="uuid">Guid for this group tag collection</param>
        /// <param name="groupTags">Group tags to populate this collection with</param>
        public GroupTag64Collection(KGuid uuid, params GroupTagDatum[] groupTags) : base(groupTags, uuid)
        {
            Contract.Requires <ArgumentNullException>(groupTags != null);

            mGroupTags = new GroupTagDatum[groupTags.Length];
            groupTags.CopyTo(mGroupTags, 0);
        }
        /// <summary>Create a collection using an explicit list of group tags</summary>
        /// <param name="uuid">Guid for this group tag collection</param>
        /// <param name="sort">Should we sort the list?</param>
        /// <param name="groupTags">Group tags to populate this collection with</param>
        public GroupTag64Collection(KGuid uuid, bool sort, params GroupTagDatum[] groupTags) : this(uuid, groupTags)
        {
            Contract.Requires <ArgumentNullException>(groupTags != null);

            if (sort)
            {
                Sort();
            }
        }
        /// <summary>Initialize a 32-bit group tag with a <see cref="Guid"/></summary>
        /// <param name="groupTag">Four character code string</param>
        /// <param name="name">Name of this group tag</param>
        /// <param name="uuid">Guid for this group tag</param>
        public GroupTagData32(string groupTag, string name, KGuid uuid) : base(groupTag, name, uuid, kExpectedTagLength)
        {
            Contract.Requires(!string.IsNullOrEmpty(groupTag));
            Contract.Requires(!string.IsNullOrEmpty(name));
            Contract.Requires(groupTag.Length == kExpectedTagLength);

            Contract.Assume(Tag.Length == kExpectedTagLength);

            mID = ToUInt(Tag);
        }
Exemple #4
0
        /// <summary>Specialized ctor for initialing from two <see cref="GroupTagData32"/> instances along with a <see cref="Guid"/></summary>
        /// <param name="maj">First four-character code</param>
        /// <param name="min">Second four-character code</param>
        /// <param name="name">Name of this <see cref="GroupTagData32"/> pair</param>
        /// <param name="uuid">Guid for this group tag</param>
        /// <remarks>Constructs a group tag in the form of '<paramref name="maj"/>' + '<paramref name="min"/>'</remarks>
        public GroupTagData64(GroupTagData32 maj, GroupTagData32 min, string name, KGuid uuid) : base(maj, min, name, uuid)
        {
            Contract.Requires(maj != null && maj != GroupTagData32.Null);
            Contract.Requires(min != null && min != GroupTagData32.Null);
            Contract.Requires(!string.IsNullOrEmpty(name));

            Contract.Assume(Tag.Length == kExpectedTagLength);

            mID = ToULong(Tag);
        }