public CodeineMessageContacs(byte subType, PackedContactDescriptors pcd)
        {
            if (pcd == null)
                throw new ArgumentException("PackedContactDescriptors must not be null");

            if (subType == (byte)_t_MSGSUBTYPE.kMSGSetContacts)
            {
                this.msgType = _t_CDMSG.kMSGContacts;
                this.subType = subType;
                this.pcd = pcd;
            }
            else
                throw new ArgumentException("Can only call this constructor with type _t_MSGGET.kMSGSetContacts");
        }
        public CodeineMessageContacs(byte[] data)
            : base(data)
        {
            if (this.msgType != (byte)_t_CDMSG.kMSGContacts)
                throw new ArgumentException("Data does not represent a CodeineMessageContacts");
            if (this.subType == (byte)_t_MSGSUBTYPE.kMSGGetContacs)
            {
                this.pcd = null;
            }
            if (this.subType == (byte)_t_MSGSUBTYPE.kMSGSetContacts)
            {
                byte[] bytes = new byte[data.Length - 2];

                Array.Copy(data, 2, bytes, 0, data.Length - 2);

                this.pcd = new PackedContactDescriptors(bytes);
            }
        }