Comments (2)
The API functions affected by load order caching are:
GameInterface::LoadPlugins()
(also called as part ofGameInterface::SortPlugins()
)GameInterface::IsPluginActive()
GameInterface::GetLoadOrder()
GameInterface::SetLoadOrder()
DatabaseInterface::EvalLists()
DatabaseInterface::GetGeneralMessages()
(if evaluating conditions)DatabaseInterface::GetPluginMetadata()
(if evaluating conditions)DatabaseInterface::GetPluginUserMetadata()
(if evaluating conditions)
Loading state in Game (which implements GameInterface) isn't a problem as it has access to the load order handler, but ApiDatabase (which implements DatabaseInterface) doesn't.
LoadPlugins()
should always reload state itself, as it's an expensive operation that then caches active states.
The other methods (apart from EvalLists()
, which can't reload state anyway) may be assumed to be quick getters operating on cached data, but clients may want to reload the state without reloading plugins or setting the load order, so there should be a new API function for doing so.
For LOOT's usage, it should be enough to rely on the reloading in LoadPlugins()
, as plugins are always loaded before (re)initialising any other data.
from libloot.
Done as of d60d964
from libloot.
Related Issues (20)
- libloot fails to find master on Linux because of case-sensitivity HOT 6
- Replace std::set usage in public API with std::vector HOT 1
- Consider introducing a new API type to represent case-insensitive filenames HOT 1
- Plugin::LoadsArchive() logic doesn't account for more recent games HOT 1
- File::GetDisplayName() falls back to file name HOT 2
- Error message for incorrect use of % HOT 1
- Cyclic interaction detected between ccbgssse002-exoticarrows.esl and ccbgssse002-exoticarrows.esl HOT 7
- Allow matching locale codes against just language code HOT 3
- Update location.rst
- Update localised_content.rst
- Add support for a "detail" property on File objects HOT 1
- Add API function to serialise a given plugin's metadata HOT 1
- Cache plugin name regex objects HOT 2
- Document support for not-expressions HOT 1
- libloot release archive naming HOT 2
- Migrate from using boost::format to std::format (via fmt) HOT 1
- Rework how group edges are added HOT 5
- Add GameInterface::GetType() and GameInterface::GetDatabase() const methods HOT 1
- Use plugins' masters to inform sorting HOT 2
- Allow creation of game handles with local paths that do not exist HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libloot.