Skip to content

Add async interfaces.#1067

Open
claudiamurialdo wants to merge 8 commits into
masterfrom
async-interfaces
Open

Add async interfaces.#1067
claudiamurialdo wants to merge 8 commits into
masterfrom
async-interfaces

Conversation

@claudiamurialdo
Copy link
Copy Markdown
Collaborator

No description provided.

@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests September 27, 2024 16:58 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests September 27, 2024 20:04 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests September 27, 2024 20:38 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo marked this pull request as ready for review November 4, 2025 17:43
@genexusbot
Copy link
Copy Markdown
Collaborator

Cherry pick to beta success

Remove unneeded async from virtual methods.
@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests November 5, 2025 15:06 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests November 5, 2025 15:06 — with GitHub Actions Inactive
@genexusbot
Copy link
Copy Markdown
Collaborator

Cherry pick to beta success

@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests November 5, 2025 16:48 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests November 5, 2025 16:48 — with GitHub Actions Inactive
@genexusbot
Copy link
Copy Markdown
Collaborator

Cherry pick to beta success

@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests November 5, 2025 17:10 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests November 5, 2025 17:10 — with GitHub Actions Inactive
@genexusbot
Copy link
Copy Markdown
Collaborator

Cherry pick to beta success

Comment on lines 78 to 79
GXHttpHandler gxWebProc = handler as GXHttpHandler;
if (gxWebProc != null && gxWebProc.GetAsyncEnabledInternal())
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a small syntax sugar. This could be:

if (handler is GXHttpHandler gxWebProc && gxWebProc.GetAsyncEnabledInternal())

Comment on lines +3102 to +3121
public virtual Task ComponentRestoreStateAsync(string sPPrefix, string sPSFPrefix)
{
return Task.CompletedTask;
}
public virtual Task ComponentProcessAsync(string sPPrefix, string sPSFPrefix, string sEvt)
{
return Task.CompletedTask;
}
public virtual Task ComponentPrepareAsync(Object[] parms)
{
return Task.CompletedTask;
}
public virtual Task ComponentStartAsync()
{
return Task.CompletedTask;
}
public virtual Task ComponentDrawAsync()
{
return Task.CompletedTask;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering if these new async methods should call their non async counterparts, in case they're not overridden in a derived class.

Comment on lines +3239 to +3250
public virtual Task<short> ExecuteStartEventAsync()
{
return Task.FromResult<short>(0);
}
public virtual Task RenderHtmlContentAsync()
{
return Task.CompletedTask;
}
public virtual Task DispatchEventsAsync()
{
return Task.CompletedTask;
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering if these new async methods should call their non async counterparts, in case they're not overridden in a derived class.

Comment on lines +65 to +68
protected virtual async Task ExecuteImplAsync()
{
await ExecutePrivateAsync();
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the difference between ExecutePrivate and ExecuteImpl and their async counterparts? Do we need both the Private and the Impl methods?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two execute methods exist so the generated Execute call can go through the derived class.

The public entry-point Execute method in the generated objects calls ExecuteImpl in the base class, which then calls the generated ExecutePrivate.

We couldn't change the signature of the public Execute method for compatibility reasons, so this structure allows the execution flow to be extended while preserving backward compatibility.

Comment on lines +2535 to +2538
public virtual Task<string> GetResponseAsync(string sGXDynURL)
{
return Task.FromResult(string.Empty);
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering if these new async methods should call their non async counterparts, in case they're not overridden in a derived class.

Support DynAjaxEvent async interface.
@claudiamurialdo claudiamurialdo temporarily deployed to kafka-integration-tests January 26, 2026 14:36 — with GitHub Actions Inactive
@claudiamurialdo claudiamurialdo temporarily deployed to external-storage-tests January 26, 2026 14:36 — with GitHub Actions Inactive
@genexusbot
Copy link
Copy Markdown
Collaborator

Cherry pick to beta success

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants