NFC design doc: Update NDEF diagrams.

pull/7426/head
Vincent Coubard 2018-08-31 10:31:16 +01:00
parent 8e75802044
commit a0b356bfc8
6 changed files with 37 additions and 35 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -3,12 +3,15 @@
package ndef { package ndef {
class MessageBuilder { class MessageBuilder {
+MessageBuilder(uint8_t* buffer, size_t capacity) +MessageBuilder(const Span<uint8_t> &buffer)
+~MessageBuilder() +~MessageBuilder()
+bool append_record(const RecordType& type, const RecordPayload* payload, bool is_last_record = false) +bool append_record(const RecordType &type, const RecordPayload &payload = RecordPayload(), bool is_last_record = false)
+bool append_record(const Record& record) +bool append_record(const RecordType &type, const PayloadBuilder &builder, bool is_last_record = false)
+const uint8_t* get_data() const; +bool append_record(const Record &record, const PayloadBuilder *builder = NULL)
+size_t get_data_size() const; +void reset();
+void reset(const Span<uint8_t> &buffer);
+bool is_message_complete() const
+Span<const uint8_t> get_message() const
} }
class Record { class Record {
@ -23,41 +26,40 @@ class RecordPayload{
class RecordID{ class RecordID{
} }
interface MessageBuilder::PayloadBuilder {
+{abstract} size_t size() const
+{abstract} void build(const Span<uint8_t> &buffer) const
# ~PayloadBuilder()
}
Record *-- RecordType Record *-- RecordType
Record *-- "0..1" RecordPayload Record *-- "0..1" RecordPayload
Record *-- "0..1" RecordID Record *-- "0..1" RecordID
Record - MessageBuilder: insert > Record - MessageBuilder: insert >
MessageBuilder - MessageBuilder::PayloadBuilder: < build payload at insertion
} }
package common { 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 { class URI {
+friend bool append_record(ndef::MessageBuilder&, const URI&) +bool append_as_record(ndef::MessageBuilder &builder, bool is_last_record) const
} }
class Text { class Text {
+friend bool append_record(ndef::MessageBuilder&, const Text&) +bool append_as_record(ndef::MessageBuilder &builder, bool is_last_record) const
} }
class Mime { class Mime {
+friend bool append_record(ndef::MessageBuilder&, const Mime&) +bool append_as_record(ndef::MessageBuilder &builder, bool is_last_record) const
} }
SimpleMessageBuilder --|> MessageBuilder URI -- MessageBuilder: uses >
Text -- MessageBuilder: uses >
URI -- SimpleMessageBuilder: wrap > Mime -- MessageBuilder: uses >
Text -- SimpleMessageBuilder: wrap >
Mime -- SimpleMessageBuilder: wrap >
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -4,13 +4,13 @@ package ndef {
class MessageParser { class MessageParser {
+MessageParser() +MessageParser()
+void set_delegate(Delegate* delegate) +void set_delegate(Delegate *delegate)
+void parse(const ac_buffer_t& data_buffer) +void parse(const Span<const uint8_t> &data_buffer)
} }
interface MessageParser::Delegate { interface MessageParser::Delegate {
+{abstract} void on_parsing_started() +{abstract} void on_parsing_started()
+{abstract} void on_record_parsed(const Record& record) +{abstract} void on_record_parsed(const Record &record)
+{abstract} void on_parsing_terminated() +{abstract} void on_parsing_terminated()
+{abstract} void on_parsing_error(error_t error) +{abstract} void on_parsing_error(error_t error)
# ~Delegate() # ~Delegate()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -48,26 +48,26 @@ package common {
class SimpleMessageParser { class SimpleMessageParser {
+ SimpleMessageParser() + SimpleMessageParser()
+ ~SimpleMessageParser() + ~SimpleMessageParser()
+ void set_delegate(Delegate* delegate) + void set_delegate(Delegate *delegate)
+ void parse(const ac_buffer_t& data_buffer) + void parse(const Span<const uint8_t> &data_buffer)
+ void add_record_parser(ndef::RecordParser* parser) + void add_record_parser(ndef::RecordParser *parser)
- void on_parsing_error(ndef::MessageParser::error_t error) - void on_parsing_error(ndef::MessageParser::error_t error)
- void on_parsing_started() - void on_parsing_started()
- void on_record_parsed(const ndef::Record& record) - void on_record_parsed(const ndef::Record &record)
- void on_parsing_terminated() - void on_parsing_terminated()
- void on_record_parsed(const URI& uri, const ndef::RecordID* id) - void on_record_parsed(const URI &uri, const ndef::RecordID &id)
- void on_record_parsed(const Text& uri, const ndef::RecordID* id) - void on_record_parsed(const Text &uri, const ndef::RecordID &id)
- void on_record_parsed(const Mime& uri, const ndef::RecordID* id) - void on_record_parsed(const Mime &uri, const ndef::RecordID &id)
} }
interface SimpleMessageParser::Delegate { interface SimpleMessageParser::Delegate {
+ {abstract} void on_parsing_error(ndef::MessageParser::error_t error)
+ {abstract} void on_parsing_started() + {abstract} void on_parsing_started()
+ {abstract} void on_text_parsed(const Text& text, const ndef::RecordID* id) + {abstract} void on_text_parsed(const Text &text, const ndef::RecordID &id)
+ {abstract} void on_mime_parsed(const Mime& text, const ndef::RecordID* id) + {abstract} void on_mime_parsed(const Mime &text, const ndef::RecordID &id)
+ {abstract} void on_uri_parsed(const URI& uri, const ndef::RecordID* id) + {abstract} void on_uri_parsed(const URI &uri, const ndef::RecordID &id)
+ {abstract} void on_unknown_record_parsed(const ndef::Record& record) + {abstract} void on_unknown_record_parsed(const ndef::Record &record)
+ {abstract} void on_parsing_terminated() + {abstract} void on_parsing_terminated()
+ {abstract} void on_parsing_error(ndef::MessageParser::error_t error)
# ~Delegate() # ~Delegate()
} }