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.
Added CreateLinksAsync and AddLinks #158
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
Uh oh!
There was an error while loading. Please reload this page.
Added CreateLinksAsync and AddLinks #158
Changes from all commits
6a21d07088811d0f97651File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The whole point of adding AddLinks is to update all the links in a single request, instead of a long sequence request/reply/request/reply which adds tons of latency, about half a second per link created.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love it when bots butcher code with non-sense.
@cinderblocks
Would calling
client.Inventory.RequestFetchInventoryAsync(newItem.UUID, newItem.OwnerID, cancellationToken);in theclient.Inventory.CreateLinksAsync(COF.UUID, newLinks,callback be sufficient? I'm not sure it will fetch folders likeRequestFolderContentsdoes.Though in my personal testing I didn't notice any misssing. The COF Folder and the folder containing the orignal items do update on my Radegast Viewer and show the proper attachment/worn labels
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that would be sufficient. The only issue might be on non-AISv3 regions (none exist in Second Life for about ten years, of course). Not sure how modern the inventory API is in OpenSimulator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not modern at all. Core doesn't implement AISv3 and has no plans to. I'd like to add it to NGC but still trying to just get the basic architecture compliant with dotnet v8+. So if supporting OpenSim is a goal the code will have to handle cases where AIS isnt present at least for some time.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The actual
AddLinksin COF has a fallback to iterate over the list and callAddLink(current code), when AISv3 isn't supported. But theCreateLinksAsyncitself doesn't throws if unsupported. I can't even remember where I found the specifications of the endpoint back then.Tbh I don't know if the older APIs implement batch Link creation or not. I implemented it years ago (2017 or 2018) or so in my local fork, because back then libremetaverise/libopenmetaverse was rather unmaintained and dead.
But until few weeks ago it was still sync, but when rebasing my libremetavers and Radegast i noticing that replacing outfits took forever again (5-10+ seconds) and took me a while to figure out what changed/broke it.
My main movitation back then was to make changing outfits faster, as changing an outfit did freeze the client up to 15-30 seconds (on a Duo Core back in 2017),making it completley unresponsive and slow during this process (also when done via RLV). Today it doesn't freeze the client, but its still slow because of multiple sequential async operations.
Uh oh!
There was an error while loading. Please reload this page.