v-16

Dependencies:   RecordType-v-16

Committer:
DuyLionTran
Date:
Tue Dec 12 15:58:32 2017 +0000
Revision:
0:6eb44b07d867
version 1.6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DuyLionTran 0:6eb44b07d867 1 /**
DuyLionTran 0:6eb44b07d867 2 ******************************************************************************
DuyLionTran 0:6eb44b07d867 3 * @file RecordHeader.h
DuyLionTran 0:6eb44b07d867 4 * @author ST / Central Labs
DuyLionTran 0:6eb44b07d867 5 * @version V2.0.0
DuyLionTran 0:6eb44b07d867 6 * @date 28 Apr 2017
DuyLionTran 0:6eb44b07d867 7 * @brief Record header class
DuyLionTran 0:6eb44b07d867 8 ******************************************************************************
DuyLionTran 0:6eb44b07d867 9 * @attention
DuyLionTran 0:6eb44b07d867 10 *
DuyLionTran 0:6eb44b07d867 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
DuyLionTran 0:6eb44b07d867 12 *
DuyLionTran 0:6eb44b07d867 13 * Redistribution and use in source and binary forms, with or without modification,
DuyLionTran 0:6eb44b07d867 14 * are permitted provided that the following conditions are met:
DuyLionTran 0:6eb44b07d867 15 * 1. Redistributions of source code must retain the above copyright notice,
DuyLionTran 0:6eb44b07d867 16 * this list of conditions and the following disclaimer.
DuyLionTran 0:6eb44b07d867 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
DuyLionTran 0:6eb44b07d867 18 * this list of conditions and the following disclaimer in the documentation
DuyLionTran 0:6eb44b07d867 19 * and/or other materials provided with the distribution.
DuyLionTran 0:6eb44b07d867 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
DuyLionTran 0:6eb44b07d867 21 * may be used to endorse or promote products derived from this software
DuyLionTran 0:6eb44b07d867 22 * without specific prior written permission.
DuyLionTran 0:6eb44b07d867 23 *
DuyLionTran 0:6eb44b07d867 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
DuyLionTran 0:6eb44b07d867 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
DuyLionTran 0:6eb44b07d867 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DuyLionTran 0:6eb44b07d867 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
DuyLionTran 0:6eb44b07d867 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DuyLionTran 0:6eb44b07d867 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
DuyLionTran 0:6eb44b07d867 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
DuyLionTran 0:6eb44b07d867 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
DuyLionTran 0:6eb44b07d867 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
DuyLionTran 0:6eb44b07d867 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
DuyLionTran 0:6eb44b07d867 34 *
DuyLionTran 0:6eb44b07d867 35 ******************************************************************************
DuyLionTran 0:6eb44b07d867 36 */
DuyLionTran 0:6eb44b07d867 37
DuyLionTran 0:6eb44b07d867 38 #ifndef NDEFLIB_RECORDHEADER_H_
DuyLionTran 0:6eb44b07d867 39 #define NDEFLIB_RECORDHEADER_H_
DuyLionTran 0:6eb44b07d867 40
DuyLionTran 0:6eb44b07d867 41 #include <stdint.h>
DuyLionTran 0:6eb44b07d867 42
DuyLionTran 0:6eb44b07d867 43 namespace NDefLib {
DuyLionTran 0:6eb44b07d867 44
DuyLionTran 0:6eb44b07d867 45 /**
DuyLionTran 0:6eb44b07d867 46 * Record header class.
DuyLionTran 0:6eb44b07d867 47 * @see NFC Data Exchange Format (NDEF) Technical Specification NDEF 1.0
DuyLionTran 0:6eb44b07d867 48 */
DuyLionTran 0:6eb44b07d867 49 class RecordHeader {
DuyLionTran 0:6eb44b07d867 50
DuyLionTran 0:6eb44b07d867 51 public:
DuyLionTran 0:6eb44b07d867 52
DuyLionTran 0:6eb44b07d867 53 /**
DuyLionTran 0:6eb44b07d867 54 * Record type format
DuyLionTran 0:6eb44b07d867 55 */
DuyLionTran 0:6eb44b07d867 56 typedef enum TypeNameFormat {
DuyLionTran 0:6eb44b07d867 57 Empty = 0x00, //!< Empty
DuyLionTran 0:6eb44b07d867 58 NFC_well_known = 0x01, //!< NFC_well_known
DuyLionTran 0:6eb44b07d867 59 Mime_media_type = 0x02,//!< Mime_media_type
DuyLionTran 0:6eb44b07d867 60 Absolute_URI = 0x03, //!< Absolute_URI
DuyLionTran 0:6eb44b07d867 61 NFC_external = 0x04, //!< NFC_external
DuyLionTran 0:6eb44b07d867 62 Unknown = 0x05, //!< Unknown
DuyLionTran 0:6eb44b07d867 63 Unchanged = 0x06, //!< Unchanged
DuyLionTran 0:6eb44b07d867 64 Reserved = 0x07 //!< Reserved
DuyLionTran 0:6eb44b07d867 65 } TypeNameFormat_t;
DuyLionTran 0:6eb44b07d867 66
DuyLionTran 0:6eb44b07d867 67
DuyLionTran 0:6eb44b07d867 68 RecordHeader() :
DuyLionTran 0:6eb44b07d867 69 headerFlags(0), typeLength(0), payloadLength(0) {
DuyLionTran 0:6eb44b07d867 70 set_SR(true);
DuyLionTran 0:6eb44b07d867 71 }
DuyLionTran 0:6eb44b07d867 72
DuyLionTran 0:6eb44b07d867 73 /**
DuyLionTran 0:6eb44b07d867 74 * Set the 'message begin' flag.
DuyLionTran 0:6eb44b07d867 75 * @param value True if the record is the first within the message.
DuyLionTran 0:6eb44b07d867 76 */
DuyLionTran 0:6eb44b07d867 77 void set_MB(bool value) {
DuyLionTran 0:6eb44b07d867 78 if (value) {
DuyLionTran 0:6eb44b07d867 79 headerFlags |= 0x80;
DuyLionTran 0:6eb44b07d867 80 } else {
DuyLionTran 0:6eb44b07d867 81 headerFlags &= ~0x80;
DuyLionTran 0:6eb44b07d867 82 }
DuyLionTran 0:6eb44b07d867 83 }//set_MB
DuyLionTran 0:6eb44b07d867 84
DuyLionTran 0:6eb44b07d867 85 /**
DuyLionTran 0:6eb44b07d867 86 * Check the 'message begin' flag.
DuyLionTran 0:6eb44b07d867 87 * @return true if it is the first record in the message
DuyLionTran 0:6eb44b07d867 88 */
DuyLionTran 0:6eb44b07d867 89 bool get_MB() const {
DuyLionTran 0:6eb44b07d867 90 return (headerFlags & 0x80) != 0;
DuyLionTran 0:6eb44b07d867 91 }//get_MB
DuyLionTran 0:6eb44b07d867 92
DuyLionTran 0:6eb44b07d867 93 /**
DuyLionTran 0:6eb44b07d867 94 * Set the 'message end' flag.
DuyLionTran 0:6eb44b07d867 95 * @param value True if it is the last record in the message.
DuyLionTran 0:6eb44b07d867 96 */
DuyLionTran 0:6eb44b07d867 97 void set_ME(bool value) {
DuyLionTran 0:6eb44b07d867 98 if (value) {
DuyLionTran 0:6eb44b07d867 99 headerFlags |= 0x40;
DuyLionTran 0:6eb44b07d867 100 } else {
DuyLionTran 0:6eb44b07d867 101 headerFlags &= ~0x40;
DuyLionTran 0:6eb44b07d867 102 }
DuyLionTran 0:6eb44b07d867 103 }//set_ME
DuyLionTran 0:6eb44b07d867 104
DuyLionTran 0:6eb44b07d867 105 /**
DuyLionTran 0:6eb44b07d867 106 * Check the 'message end' flag.
DuyLionTran 0:6eb44b07d867 107 * @return true if it is the last record in the message
DuyLionTran 0:6eb44b07d867 108 */
DuyLionTran 0:6eb44b07d867 109 bool get_ME() const {
DuyLionTran 0:6eb44b07d867 110 return (headerFlags & 0x40) != 0;
DuyLionTran 0:6eb44b07d867 111 }//get_ME
DuyLionTran 0:6eb44b07d867 112
DuyLionTran 0:6eb44b07d867 113 /**
DuyLionTran 0:6eb44b07d867 114 * Set the 'Chunk' flag.
DuyLionTran 0:6eb44b07d867 115 * @param value True if the record is in the first record chunk or in a middle record
DuyLionTran 0:6eb44b07d867 116 * chunk of a chunked payload.
DuyLionTran 0:6eb44b07d867 117 */
DuyLionTran 0:6eb44b07d867 118 void set_CF(bool value) {
DuyLionTran 0:6eb44b07d867 119 if (value) {
DuyLionTran 0:6eb44b07d867 120 headerFlags |= 0x20;
DuyLionTran 0:6eb44b07d867 121 } else {
DuyLionTran 0:6eb44b07d867 122 headerFlags &= ~0x20;
DuyLionTran 0:6eb44b07d867 123 }
DuyLionTran 0:6eb44b07d867 124 }//set_CF
DuyLionTran 0:6eb44b07d867 125
DuyLionTran 0:6eb44b07d867 126 /**
DuyLionTran 0:6eb44b07d867 127 * Check the 'Chunk' flag value.
DuyLionTran 0:6eb44b07d867 128 * @return true if the record is in the first record chunk or in a middle record
DuyLionTran 0:6eb44b07d867 129 * chunk of a chunked payload
DuyLionTran 0:6eb44b07d867 130 */
DuyLionTran 0:6eb44b07d867 131 bool get_CF() const {
DuyLionTran 0:6eb44b07d867 132 return (headerFlags & 0x20) != 0;
DuyLionTran 0:6eb44b07d867 133 }//get_CF
DuyLionTran 0:6eb44b07d867 134
DuyLionTran 0:6eb44b07d867 135 /**
DuyLionTran 0:6eb44b07d867 136 * Set the 'Short record' flag value.
DuyLionTran 0:6eb44b07d867 137 * @param value True if the record size can be encoded with 8 bits.
DuyLionTran 0:6eb44b07d867 138 */
DuyLionTran 0:6eb44b07d867 139 void set_SR(bool value) {
DuyLionTran 0:6eb44b07d867 140 if (value) {
DuyLionTran 0:6eb44b07d867 141 headerFlags |= 0x10;
DuyLionTran 0:6eb44b07d867 142 } else {
DuyLionTran 0:6eb44b07d867 143 headerFlags &= ~0x10;
DuyLionTran 0:6eb44b07d867 144 }
DuyLionTran 0:6eb44b07d867 145 }//setSR
DuyLionTran 0:6eb44b07d867 146
DuyLionTran 0:6eb44b07d867 147 /**
DuyLionTran 0:6eb44b07d867 148 * Check the 'Short record' flag.
DuyLionTran 0:6eb44b07d867 149 * @return true if the short range header format is set
DuyLionTran 0:6eb44b07d867 150 */
DuyLionTran 0:6eb44b07d867 151 bool get_SR() const {
DuyLionTran 0:6eb44b07d867 152 return (headerFlags & 0x10) != 0;
DuyLionTran 0:6eb44b07d867 153 }//getSR
DuyLionTran 0:6eb44b07d867 154
DuyLionTran 0:6eb44b07d867 155 /**
DuyLionTran 0:6eb44b07d867 156 * Set the 'ID length' flag.
DuyLionTran 0:6eb44b07d867 157 * @param value True if the 'ID length' value is used.
DuyLionTran 0:6eb44b07d867 158 */
DuyLionTran 0:6eb44b07d867 159 void set_IL(bool value) {
DuyLionTran 0:6eb44b07d867 160 if (value) {
DuyLionTran 0:6eb44b07d867 161 headerFlags |= 0x08;
DuyLionTran 0:6eb44b07d867 162 } else {
DuyLionTran 0:6eb44b07d867 163 headerFlags &= ~0x08;
DuyLionTran 0:6eb44b07d867 164 }
DuyLionTran 0:6eb44b07d867 165 }//setIL
DuyLionTran 0:6eb44b07d867 166
DuyLionTran 0:6eb44b07d867 167 /**
DuyLionTran 0:6eb44b07d867 168 * Check the 'ID length' flag.
DuyLionTran 0:6eb44b07d867 169 * @param value True if 'ID length' is set.
DuyLionTran 0:6eb44b07d867 170 */
DuyLionTran 0:6eb44b07d867 171 bool get_IL() const {
DuyLionTran 0:6eb44b07d867 172 return (headerFlags & 0x08) != 0;
DuyLionTran 0:6eb44b07d867 173 }//getIL
DuyLionTran 0:6eb44b07d867 174
DuyLionTran 0:6eb44b07d867 175 /**
DuyLionTran 0:6eb44b07d867 176 * Set the type name format field.
DuyLionTran 0:6eb44b07d867 177 * @param value Record type name format.
DuyLionTran 0:6eb44b07d867 178 */
DuyLionTran 0:6eb44b07d867 179 void set_FNT(const TypeNameFormat_t value) {
DuyLionTran 0:6eb44b07d867 180 uint8_t temp = (uint8_t) value;
DuyLionTran 0:6eb44b07d867 181 temp &= 0x07; //keep the first 3 bits
DuyLionTran 0:6eb44b07d867 182 headerFlags &= 0xF8; //clean the fist 3 bits
DuyLionTran 0:6eb44b07d867 183 headerFlags |= temp; //set the fist 3 bits
DuyLionTran 0:6eb44b07d867 184 }//setFNT
DuyLionTran 0:6eb44b07d867 185
DuyLionTran 0:6eb44b07d867 186 /**
DuyLionTran 0:6eb44b07d867 187 * Get the record type name.
DuyLionTran 0:6eb44b07d867 188 * @return type name format of the record
DuyLionTran 0:6eb44b07d867 189 */
DuyLionTran 0:6eb44b07d867 190 TypeNameFormat_t get_FNT() const {
DuyLionTran 0:6eb44b07d867 191 return (TypeNameFormat_t) (headerFlags & 0x07);
DuyLionTran 0:6eb44b07d867 192 }
DuyLionTran 0:6eb44b07d867 193
DuyLionTran 0:6eb44b07d867 194 /**
DuyLionTran 0:6eb44b07d867 195 * Set the record payload length.
DuyLionTran 0:6eb44b07d867 196 * @par This function will update the SR field as needed.
DuyLionTran 0:6eb44b07d867 197 * @param length payload length
DuyLionTran 0:6eb44b07d867 198 */
DuyLionTran 0:6eb44b07d867 199 void set_payload_length(uint32_t length) {
DuyLionTran 0:6eb44b07d867 200 payloadLength = length;
DuyLionTran 0:6eb44b07d867 201 set_SR(payloadLength <= 255);
DuyLionTran 0:6eb44b07d867 202 }
DuyLionTran 0:6eb44b07d867 203
DuyLionTran 0:6eb44b07d867 204 /**
DuyLionTran 0:6eb44b07d867 205 * Get the payload length.
DuyLionTran 0:6eb44b07d867 206 * @return payload length
DuyLionTran 0:6eb44b07d867 207 */
DuyLionTran 0:6eb44b07d867 208 uint32_t get_payload_length() const {
DuyLionTran 0:6eb44b07d867 209 return payloadLength;
DuyLionTran 0:6eb44b07d867 210 }
DuyLionTran 0:6eb44b07d867 211
DuyLionTran 0:6eb44b07d867 212 /**
DuyLionTran 0:6eb44b07d867 213 * Set the type length.
DuyLionTran 0:6eb44b07d867 214 * @param size.
DuyLionTran 0:6eb44b07d867 215 */
DuyLionTran 0:6eb44b07d867 216 void set_type_length(uint8_t size) {
DuyLionTran 0:6eb44b07d867 217 typeLength = size;
DuyLionTran 0:6eb44b07d867 218 }
DuyLionTran 0:6eb44b07d867 219
DuyLionTran 0:6eb44b07d867 220 /**
DuyLionTran 0:6eb44b07d867 221 * Get the type length.
DuyLionTran 0:6eb44b07d867 222 * @return type length
DuyLionTran 0:6eb44b07d867 223 */
DuyLionTran 0:6eb44b07d867 224 uint8_t get_type_length() const {
DuyLionTran 0:6eb44b07d867 225 return typeLength;
DuyLionTran 0:6eb44b07d867 226 }
DuyLionTran 0:6eb44b07d867 227
DuyLionTran 0:6eb44b07d867 228 /**
DuyLionTran 0:6eb44b07d867 229 * Set the id length.
DuyLionTran 0:6eb44b07d867 230 * @param size.
DuyLionTran 0:6eb44b07d867 231 */
DuyLionTran 0:6eb44b07d867 232 void set_id_length(uint8_t size) {
DuyLionTran 0:6eb44b07d867 233 if (size!=0) {
DuyLionTran 0:6eb44b07d867 234 idLength = size;
DuyLionTran 0:6eb44b07d867 235 set_IL(true);
DuyLionTran 0:6eb44b07d867 236 } else {
DuyLionTran 0:6eb44b07d867 237 set_IL(false);
DuyLionTran 0:6eb44b07d867 238 }
DuyLionTran 0:6eb44b07d867 239 }
DuyLionTran 0:6eb44b07d867 240
DuyLionTran 0:6eb44b07d867 241 /**
DuyLionTran 0:6eb44b07d867 242 * Get the id length.
DuyLionTran 0:6eb44b07d867 243 * @return id length
DuyLionTran 0:6eb44b07d867 244 */
DuyLionTran 0:6eb44b07d867 245 uint8_t get_id_length() const {
DuyLionTran 0:6eb44b07d867 246 return idLength;
DuyLionTran 0:6eb44b07d867 247 }
DuyLionTran 0:6eb44b07d867 248
DuyLionTran 0:6eb44b07d867 249 /**
DuyLionTran 0:6eb44b07d867 250 * Get the number of bytes needed to store this record.
DuyLionTran 0:6eb44b07d867 251 * @return 3 or 6
DuyLionTran 0:6eb44b07d867 252 */
DuyLionTran 0:6eb44b07d867 253 uint16_t get_record_length() const {
DuyLionTran 0:6eb44b07d867 254 return (get_SR() ? 3 : 6) + (get_IL() ? idLength : 0)+typeLength + payloadLength;
DuyLionTran 0:6eb44b07d867 255 }
DuyLionTran 0:6eb44b07d867 256
DuyLionTran 0:6eb44b07d867 257 /**
DuyLionTran 0:6eb44b07d867 258 * Store the header information in the buffer.
DuyLionTran 0:6eb44b07d867 259 * @param[out] outBuffer Buffer to write the header into.
DuyLionTran 0:6eb44b07d867 260 * @return number of write bytes
DuyLionTran 0:6eb44b07d867 261 */
DuyLionTran 0:6eb44b07d867 262 uint8_t write_header(uint8_t *outBuffer) const {
DuyLionTran 0:6eb44b07d867 263
DuyLionTran 0:6eb44b07d867 264 uint32_t index = 0;
DuyLionTran 0:6eb44b07d867 265
DuyLionTran 0:6eb44b07d867 266 outBuffer[index++] = headerFlags;
DuyLionTran 0:6eb44b07d867 267 outBuffer[index++] = typeLength;
DuyLionTran 0:6eb44b07d867 268 if (get_SR()) {
DuyLionTran 0:6eb44b07d867 269 outBuffer[index++] = (uint8_t) payloadLength;
DuyLionTran 0:6eb44b07d867 270 } else {
DuyLionTran 0:6eb44b07d867 271 outBuffer[index++] = (uint8_t) ((payloadLength & 0xFF000000)
DuyLionTran 0:6eb44b07d867 272 >> 24);
DuyLionTran 0:6eb44b07d867 273 outBuffer[index++] = (uint8_t) ((payloadLength & 0x00FF0000)
DuyLionTran 0:6eb44b07d867 274 >> 16);
DuyLionTran 0:6eb44b07d867 275 outBuffer[index++] = (uint8_t) ((payloadLength & 0x0000FF00)
DuyLionTran 0:6eb44b07d867 276 >> 8);
DuyLionTran 0:6eb44b07d867 277 outBuffer[index++] = (uint8_t) (payloadLength & 0x000000FF);
DuyLionTran 0:6eb44b07d867 278 } //if-else
DuyLionTran 0:6eb44b07d867 279 if (get_IL()) {
DuyLionTran 0:6eb44b07d867 280 outBuffer[index++] =idLength;
DuyLionTran 0:6eb44b07d867 281 }
DuyLionTran 0:6eb44b07d867 282
DuyLionTran 0:6eb44b07d867 283 return index;
DuyLionTran 0:6eb44b07d867 284 } //writeHeader
DuyLionTran 0:6eb44b07d867 285
DuyLionTran 0:6eb44b07d867 286 /**
DuyLionTran 0:6eb44b07d867 287 * Load an header from a buffer.
DuyLionTran 0:6eb44b07d867 288 * @param buffer Buffer to load the header from.
DuyLionTran 0:6eb44b07d867 289 * @return number of read bytes
DuyLionTran 0:6eb44b07d867 290 */
DuyLionTran 0:6eb44b07d867 291 uint16_t load_header(const uint8_t * const buffer) {
DuyLionTran 0:6eb44b07d867 292 uint32_t index = 0;
DuyLionTran 0:6eb44b07d867 293 headerFlags = buffer[index++];
DuyLionTran 0:6eb44b07d867 294 typeLength = buffer[index++];
DuyLionTran 0:6eb44b07d867 295 if (get_SR()) {
DuyLionTran 0:6eb44b07d867 296 payloadLength = buffer[index++];
DuyLionTran 0:6eb44b07d867 297 } else {
DuyLionTran 0:6eb44b07d867 298 payloadLength = (((uint32_t) buffer[index + 0]) << 24)
DuyLionTran 0:6eb44b07d867 299 | (((uint32_t) buffer[index + 1]) << 16)
DuyLionTran 0:6eb44b07d867 300 | (((uint32_t) buffer[index + 2]) << 8)
DuyLionTran 0:6eb44b07d867 301 | ((uint32_t) buffer[index + 3]);
DuyLionTran 0:6eb44b07d867 302 index += 4;
DuyLionTran 0:6eb44b07d867 303 } //if-else
DuyLionTran 0:6eb44b07d867 304 if (get_IL()) {
DuyLionTran 0:6eb44b07d867 305 idLength = buffer[index++];
DuyLionTran 0:6eb44b07d867 306 } else {
DuyLionTran 0:6eb44b07d867 307 idLength = 0;
DuyLionTran 0:6eb44b07d867 308 }
DuyLionTran 0:6eb44b07d867 309
DuyLionTran 0:6eb44b07d867 310 return index;
DuyLionTran 0:6eb44b07d867 311 } //loadHeader
DuyLionTran 0:6eb44b07d867 312
DuyLionTran 0:6eb44b07d867 313 /**
DuyLionTran 0:6eb44b07d867 314 * Equal operator.
DuyLionTran 0:6eb44b07d867 315 * @param other Other object to compare with.
DuyLionTran 0:6eb44b07d867 316 * @return true if the two record headers are equal
DuyLionTran 0:6eb44b07d867 317 */
DuyLionTran 0:6eb44b07d867 318 bool operator==(const RecordHeader &other) const{
DuyLionTran 0:6eb44b07d867 319 return (headerFlags==other.headerFlags) &&
DuyLionTran 0:6eb44b07d867 320 (typeLength==other.typeLength) &&
DuyLionTran 0:6eb44b07d867 321 (payloadLength==other.payloadLength);
DuyLionTran 0:6eb44b07d867 322 }
DuyLionTran 0:6eb44b07d867 323
DuyLionTran 0:6eb44b07d867 324 bool operator!=(const RecordHeader &other) const{
DuyLionTran 0:6eb44b07d867 325 return !(*this==other);
DuyLionTran 0:6eb44b07d867 326 }
DuyLionTran 0:6eb44b07d867 327
DuyLionTran 0:6eb44b07d867 328 private:
DuyLionTran 0:6eb44b07d867 329 uint8_t idLength;
DuyLionTran 0:6eb44b07d867 330 uint8_t headerFlags;
DuyLionTran 0:6eb44b07d867 331 uint8_t typeLength;
DuyLionTran 0:6eb44b07d867 332 uint32_t payloadLength;
DuyLionTran 0:6eb44b07d867 333 };
DuyLionTran 0:6eb44b07d867 334
DuyLionTran 0:6eb44b07d867 335 } /* namespace NDefLib */
DuyLionTran 0:6eb44b07d867 336
DuyLionTran 0:6eb44b07d867 337 #endif /* NDEFLIB_RECORDHEADER_H_ */
DuyLionTran 0:6eb44b07d867 338
DuyLionTran 0:6eb44b07d867 339
DuyLionTran 0:6eb44b07d867 340 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/