-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
All Missing Feature Implementation For a Base Client #33
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
goto: doc
add hasAttr, getAttr and lastly setAttr methods.
…terStanzaPlugin`
vsevex
added
documentation
Improvements or additions to documentation
enhancement
New feature or request
labels
Jan 4, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduction
All changes are not properly described and not will be included in the changelogs. 'Cause, the amount of changed files and changes is huge, so short brief will be given on this issue. No more, no less.
Changes
First and foremost, the integration of base element creation and initialization using the
XMLBase
class marks significant enhancement, providing a robust foundation that can now be leveraged across a multitude of stanza creation processes. The introduction of StanzaBase is now done, and with this class, you strengthen your XML manipulation process. Besides this child stanza, you can now access and extend from or work with IQ, Message, and Presence stanzas, including the pivotal Root Stanza.To fortify the implementation, a comprehensive suite of test cases has been crafted, covering all aspects of these stanzas.
By incorporating the dart's built-in Socket, the successful injection of the main
Transport
class marks the primary achievement in the project's architecture. This foundational class serves as the backbone of Whixp, managing every aspect from connection establishment to disconnection. Operating as the underlying mechanism, this class takes charge of tasks such as data manipulation, XML event streaming, stream wrapping, and the filtration of incoming data, consolidating all these functionalities within a single, cohesive layer.Moreover, the integration of exception and error handling has been woven throughout this comprehensive update. The implementation of an approach to event handling through the incorporation of an aptly named class,
Eventius
. This class acts as a central hub for managing events, such as connected, binding established, disconnected, etc., contributing to a more streamlined and efficient eventing system. A significant advancement lies in the transformation of event handling, exexplified by the inclusion of Future callback handling. This specificially ceters to the nuanced requirements of waiting for IQ stanza responses. This update doesn't merely stop at error handling; it extends to a more comprehensive handling system that encapsulates a variety of scenarios. The result is a versatile and resilient infrastructure that adeptly manages exceptions, errors, and diverse callback scenarios.Optimizing the codebase is evident through the implementation of low-level Jabber ID and streamlined string handling processes. This enhancement extends to the incorporation of essential mechanisms such as Punycode and IDNA, ensuring a standardized and uniform representation of string data. Notably, the inclusion of
Punycode
andIDNA
mechanisms is particularly significant for internationalization support, as it addresses the complexities of encoding and decoding domain names with non-ASCII characters. This thoughtful addition enhances the project's compatibility and usability in diverse linguistic contexts.Furthermore
For future updates, I am dropping the task list here, this issue will be open till the last one is closed.