/// <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); }
/// <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); }