Utility library to read and write Ndef messages from/to a Type4 NFC tag
Dependents: NFC M2M_2016_STM32 MyongjiElec_capstone1 IDW01M1_Cloud_IBM ... more
Fork of NDefLib by
NDEF NFC library
This library provides an abstract API to create NDEF formatted messages and records and to read/write them from/to a Type4 NFC Tag.
Implementations
At the moment, the NDEF API is implemented by X_NUCLEO_NFC01A1 and X_NUCLEO_NFC02A1 Dynamic NFC Tag libraries respectively driving the X-NUCLEO-NFC01A1 and X-NUCLEO-NFC02A1 boards.
RecordType/RecordMail.h
- Committer:
- giovannivisentini
- Date:
- 2016-01-08
- Revision:
- 9:689c1f56f359
- Parent:
- 8:473f6e0b03df
- Child:
- 12:ed4d9b8d1410
File content as of revision 9:689c1f56f359:
/** ****************************************************************************** * @file RecordMail.h * @author ST / Central Labs * @version V1.0.0 * @date 17 Nov 2015 * @brief class that specialize the {@link RecordUri} for store the mail content ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** */ #ifndef NDEFLIB_RECORDTYPE_RECORDMAIL_H_s #define NDEFLIB_RECORDTYPE_RECORDMAIL_H_ #include "RecordURI.h" namespace NDefLib { /** * Class that specialize the {@link RecordUri} for store the mail content */ class RecordMail: public RecordURI { public: /** * create an RecordMail reading the data from the buffer * @param header record header already read * @param buffer buffer where read the data * @return an object of type RecordMail or NULL * @par free the pointer return by this function */ static RecordMail* parse(const RecordHeader &header, const uint8_t* buffer); /** * create a mail * @param toAddress where send the mail * @param subject mail subject * @param msg message */ RecordMail(const std::string &toAddress, const std::string &subject, const std::string &msg) : RecordURI(RecordURI::MAIL), mToAddress(toAddress), mSubject( subject), mBody(msg),mContentIsChange(true) { } ; virtual ~RecordMail() { }; /** * @return the mail recipient address */ const std::string& getToAddress() const { return mToAddress; } /** * @return the mail subject */ const std::string& getSubject() const { return mSubject; } /** * @return the mail body */ const std::string& getBody() const { return mBody; } /** * change the mail recipient * @param dest recipient address * the string is copyed inside the class */ void setToAddress(const std::string& dest){ mContentIsChange=true; mToAddress=dest; } /** * change the mail subject * @param subj new mail subject * the string is copyed inside the class */ void setSubject(const std::string& subj) { mContentIsChange=true; mSubject=subj; } /** * change the mail body * @param body new mail body * the string is copyed inside the class */ void setBody(const std::string& body) { mContentIsChange=true; mBody=body; } /** * get the record type * @return TYPE_URI_MAIL */ virtual RecordType_t getType() const { return TYPE_URI_MAIL; } //getType /** * compare 2 RecordMail * @return true if both the tag have address,subject and body */ bool operator==(const RecordMail& other)const{ return mToAddress == other.mToAddress && mSubject == other.mSubject && mBody == other.mBody; } protected: /** * generate the uri content that encode the mail content * @see RecordUri#updateContent */ virtual void updateContent(); private: std::string mToAddress; ///< mail address std::string mSubject; ///< mail subject std::string mBody; ///< mail body bool mContentIsChange; ///< true if the use update some mail field static const std::string sSubjectTag; ///< string to use bofore the subject static const std::string sBodyTag; ///< string to use before the mail body }; } /* namespace NDefLib */ #endif /* NDEFLIB_RECORDTYPE_RECORDMAIL_H_ */