diff --git a/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.png b/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.png index c74ec06a4c..af27574124 100644 Binary files a/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.png and b/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.png differ diff --git a/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.txt b/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.txt index 286fcbe813..f37e937303 100644 --- a/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.txt +++ b/docs/design-documents/nfc/uml_diagram_ndef_message_builder_diagram.txt @@ -3,12 +3,15 @@ package ndef { class MessageBuilder { - +MessageBuilder(uint8_t* buffer, size_t capacity) + +MessageBuilder(const Span &buffer) +~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; + +bool append_record(const RecordType &type, const RecordPayload &payload = RecordPayload(), bool is_last_record = false) + +bool append_record(const RecordType &type, const PayloadBuilder &builder, bool is_last_record = false) + +bool append_record(const Record &record, const PayloadBuilder *builder = NULL) + +void reset(); + +void reset(const Span &buffer); + +bool is_message_complete() const + +Span get_message() const } class Record { @@ -23,41 +26,40 @@ class RecordPayload{ class RecordID{ } +interface MessageBuilder::PayloadBuilder { + +{abstract} size_t size() const + +{abstract} void build(const Span &buffer) const + # ~PayloadBuilder() +} + + Record *-- RecordType Record *-- "0..1" RecordPayload Record *-- "0..1" RecordID Record - MessageBuilder: insert > +MessageBuilder - MessageBuilder::PayloadBuilder: < build payload at insertion } 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&) ++bool append_as_record(ndef::MessageBuilder &builder, bool is_last_record) const } class Text { -+friend bool append_record(ndef::MessageBuilder&, const Text&) ++bool append_as_record(ndef::MessageBuilder &builder, bool is_last_record) const } 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 -- SimpleMessageBuilder: wrap > -Text -- SimpleMessageBuilder: wrap > -Mime -- SimpleMessageBuilder: wrap > +URI -- MessageBuilder: uses > +Text -- MessageBuilder: uses > +Mime -- MessageBuilder: uses > } diff --git a/docs/design-documents/nfc/uml_diagram_ndef_message_parser.png b/docs/design-documents/nfc/uml_diagram_ndef_message_parser.png index ab27b91474..96b906cf2b 100644 Binary files a/docs/design-documents/nfc/uml_diagram_ndef_message_parser.png and b/docs/design-documents/nfc/uml_diagram_ndef_message_parser.png differ diff --git a/docs/design-documents/nfc/uml_diagram_ndef_message_parser.txt b/docs/design-documents/nfc/uml_diagram_ndef_message_parser.txt index c5761290fa..3030efd01f 100644 --- a/docs/design-documents/nfc/uml_diagram_ndef_message_parser.txt +++ b/docs/design-documents/nfc/uml_diagram_ndef_message_parser.txt @@ -4,13 +4,13 @@ package ndef { class MessageParser { +MessageParser() - +void set_delegate(Delegate* delegate) - +void parse(const ac_buffer_t& data_buffer) + +void set_delegate(Delegate *delegate) + +void parse(const Span &data_buffer) } interface MessageParser::Delegate { +{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_error(error_t error) # ~Delegate() diff --git a/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.png b/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.png index 02a77eb114..7e2a9fd5e7 100644 Binary files a/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.png and b/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.png differ diff --git a/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.txt b/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.txt index d1618f8dc6..ff77ce4dda 100644 --- a/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.txt +++ b/docs/design-documents/nfc/uml_diagram_ndef_simple_parser.txt @@ -48,26 +48,26 @@ package common { class SimpleMessageParser { + SimpleMessageParser() + ~SimpleMessageParser() - + void set_delegate(Delegate* delegate) - + void parse(const ac_buffer_t& data_buffer) - + void add_record_parser(ndef::RecordParser* parser) + + void set_delegate(Delegate *delegate) + + void parse(const Span &data_buffer) + + void add_record_parser(ndef::RecordParser *parser) - void on_parsing_error(ndef::MessageParser::error_t error) - 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_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 Mime& 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 Mime &uri, const ndef::RecordID &id) } interface SimpleMessageParser::Delegate { - + {abstract} void on_parsing_error(ndef::MessageParser::error_t error) + {abstract} void on_parsing_started() - + {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_uri_parsed(const URI& uri, const ndef::RecordID* id) - + {abstract} void on_unknown_record_parsed(const ndef::Record& record) + + {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_uri_parsed(const URI &uri, const ndef::RecordID &id) + + {abstract} void on_unknown_record_parsed(const ndef::Record &record) + {abstract} void on_parsing_terminated() + + {abstract} void on_parsing_error(ndef::MessageParser::error_t error) # ~Delegate() }