Skip to content
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

Add ConnectionOpenedCallback #1515

Merged
merged 9 commits into from
Oct 13, 2024
Merged

Add ConnectionOpenedCallback #1515

merged 9 commits into from
Oct 13, 2024

Conversation

bgrainger
Copy link
Member

Fixes #1508.

This differs from the existing StateChanged event in that:

  • it supports an async callback
  • it's only invoked when a connection is opened
  • it provides information about new vs existing and whether the connection was reset

Opening for API review. Needs tests before it can be merged.

This differs from the existing StateChanged event in that:

- it supports an async callback
- it's only invoked when a connection is opened
- it provides information about new vs existing and whether the connection was reset

Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
@bgrainger bgrainger requested a review from ejball October 6, 2024 14:46
src/MySqlConnector/Core/ServerSession.cs Outdated Show resolved Hide resolved
src/MySqlConnector/MySqlConnection.cs Outdated Show resolved Hide resolved
src/MySqlConnector/Core/ServerSession.cs Show resolved Hide resolved
Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
This will make it easier to add additional properties in the future if they're ever needed.

Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
Rename type to 'Context'; this matches the existing UsePeriodicPasswordProvider.
Add CancellationToken; the user might execute commands against the server that might need to be cancelled.
Remove sync overload; it could be unnecessary.
Move types to their own files.
Allow multiple callbacks to be added.

Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
@bgrainger bgrainger requested a review from ejball October 13, 2024 15:08
Signed-off-by: Bradley Grainger <bgrainger@gmail.com>
@bgrainger bgrainger marked this pull request as ready for review October 13, 2024 23:31
@bgrainger bgrainger merged commit b78e43f into master Oct 13, 2024
23 checks passed
@bgrainger bgrainger deleted the opened-callback branch October 13, 2024 23:32
@jnoordsij
Copy link

Thanks for this! However I'm struggling to see how this should be used when creating a MySqlConnection, given that ConnectionOpenedCallback is internal?

@bgrainger
Copy link
Member Author

Documentation isn't fully updated yet, but you need to use MySqlDataSourceBuilder: https://mysqlconnector.net/api/mysqlconnector/mysqldatasourcebuilder/useconnectionopenedcallback/

DbDataSource is the .NET 7+ way of configuring DbConnection objects, and will be the preferred API for MySqlConnector going forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Add (flexible) hook for initial connection opening event
3 participants