mirror of https://github.com/ARMmbed/mbed-os.git
NFC Design: Add note about NDEF Message construction.
parent
7ed2a7802b
commit
cfec12adb5
|
@ -436,7 +436,15 @@ virtual void on_parsing_terminated();
|
|||
|
||||
### Serialization
|
||||
|
||||
**TBD**
|
||||
The class `MessageBuilder` is used to map a record into an NDEF message. It
|
||||
includes a data buffer that contains the _raw_ message. Client code use the
|
||||
functions `append_record` to append a new record into the message being built.
|
||||
|
||||
![ndef_message_builder_diagram]
|
||||
|
||||
For convenience, serialization functions for common types are provided as well as
|
||||
a specialized `MessageBuilder` named `SimpleMessageBuilder` that exposes them
|
||||
in an object oriented fashion.
|
||||
|
||||
## HAL APIs
|
||||
|
||||
|
@ -508,4 +516,5 @@ There are currently at least four event queues (Plaftorm, BLE, USB, IP) in mbed
|
|||
[ndef_message_parser_diagram]: uml_diagram_ndef_message_parser.png
|
||||
[ndef_record_parser_diagram]: uml_diagram_ndef_record_parser.png
|
||||
[ndef_common_parsers_diagram]: uml_diagram_ndef_common_parsers.png
|
||||
[ndef_simple_parser_diagram]: uml_diagram_ndef_simple_parser.png
|
||||
[ndef_simple_parser_diagram]: uml_diagram_ndef_simple_parser.png
|
||||
[ndef_message_builder_diagram]: uml_diagram_ndef_message_builder_diagram.png
|
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
|
@ -0,0 +1,64 @@
|
|||
@startuml
|
||||
|
||||
package ndef {
|
||||
|
||||
class MessageBuilder {
|
||||
+MessageBuilder(uint8_t* buffer, size_t capacity)
|
||||
+~MessageBuilder()
|
||||
+bool append_record(const RecordType& type, const RecordPayload* payload, bool is_last_record = false)
|
||||
+bool append_record(const Record& record)
|
||||
+const uint8_t* get_data() const;
|
||||
+size_t get_data_size() const;
|
||||
}
|
||||
|
||||
class Record {
|
||||
}
|
||||
|
||||
class RecordType{
|
||||
}
|
||||
|
||||
class RecordPayload{
|
||||
}
|
||||
|
||||
class RecordID{
|
||||
}
|
||||
|
||||
Record *-- RecordType
|
||||
Record *-- "0..1" RecordPayload
|
||||
Record *-- "0..1" RecordID
|
||||
|
||||
Record - MessageBuilder: insert >
|
||||
|
||||
}
|
||||
|
||||
package common {
|
||||
|
||||
class SimpleMessageBuilder {
|
||||
+SimpleMessageBuilder(uint8_t* buffer, size_t capacity)
|
||||
+~SimpleMessageBuilder()
|
||||
+bool append_uri(const URI&)
|
||||
+bool append_text(const Text&)
|
||||
+bool append_mime(const Mime&)
|
||||
}
|
||||
|
||||
class URI {
|
||||
+friend bool append_record(ndef::MessageBuilder&, const URI&)
|
||||
}
|
||||
|
||||
class Text {
|
||||
+friend bool append_record(ndef::MessageBuilder&, const Text&)
|
||||
}
|
||||
|
||||
class Mime {
|
||||
+friend bool append_record(ndef::MessageBuilder&, const Mime&)
|
||||
}
|
||||
|
||||
SimpleMessageBuilder --|> MessageBuilder
|
||||
|
||||
URI -- SimpleMessageBuilder: wrap >
|
||||
Text -- SimpleMessageBuilder: wrap >
|
||||
Mime -- SimpleMessageBuilder: wrap >
|
||||
|
||||
}
|
||||
|
||||
@enduml
|
Loading…
Reference in New Issue