You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

306 lines
16 KiB

<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Interface IConfigStore
</title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Interface IConfigStore
">
<meta name="generator" content="docfx 2.56.6.0">
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles/docfx.vendor.css">
<link rel="stylesheet" href="../styles/docfx.css">
<link rel="stylesheet" href="../styles/main.css">
<link rel="stylesheet" href="../styles/fix.css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<meta property="docfx:navrel" content="../toc.html">
<meta property="docfx:tocrel" content="toc.html">
<meta property="docfx:rel" content="../">
<meta property="docfx:newtab" content="true">
</head> <body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list">Search Results for <span></span></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="IPA.Config.IConfigStore">
<h1 id="IPA_Config_IConfigStore" data-uid="IPA.Config.IConfigStore" class="text-break">Interface IConfigStore
</h1>
<div class="markdown level0 summary"><p>A storage for a config structure.</p>
</div>
<div class="markdown level0 conceptual"></div>
<h6><strong>Namespace</strong>: <a class="xref" href="IPA.Config.html">IPA.Config</a></h6>
<h6><strong>Assembly</strong>: IPA.Loader.dll</h6>
<h5 id="IPA_Config_IConfigStore_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IConfigStore</code></pre>
</div>
<h3 id="properties">Properties
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_IConfigStore_SyncObject.md&amp;value=---%0Auid%3A%20IPA.Config.IConfigStore.SyncObject%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/f0a33cc85e12f99d46b4131348f52adc47685286/IPA.Loader/Config/IConfigStore.cs/#L21">View Source</a>
</span>
<a id="IPA_Config_IConfigStore_SyncObject_" data-uid="IPA.Config.IConfigStore.SyncObject*"></a>
<h4 id="IPA_Config_IConfigStore_SyncObject" data-uid="IPA.Config.IConfigStore.SyncObject">SyncObject</h4>
<div class="markdown level1 summary"><p>A synchronization object for the save thread to wait on for changes.
It should be signaled whenever the internal state of the object is changed.
The writer will never signal this handle. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">WaitHandle SyncObject { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.threading.waithandle">WaitHandle</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_IConfigStore_WriteSyncObject.md&amp;value=---%0Auid%3A%20IPA.Config.IConfigStore.WriteSyncObject%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/f0a33cc85e12f99d46b4131348f52adc47685286/IPA.Loader/Config/IConfigStore.cs/#L32">View Source</a>
</span>
<a id="IPA_Config_IConfigStore_WriteSyncObject_" data-uid="IPA.Config.IConfigStore.WriteSyncObject*"></a>
<h4 id="IPA_Config_IConfigStore_WriteSyncObject" data-uid="IPA.Config.IConfigStore.WriteSyncObject">WriteSyncObject</h4>
<div class="markdown level1 summary"><p>A synchronization object for the load thread and accessors to maintain safe synchronization.
Any readers should take a read lock with <a class="xref" href="https://docs.microsoft.com/dotnet/api/system.threading.readerwriterlockslim.enterreadlock#System_Threading_ReaderWriterLockSlim_EnterReadLock">EnterReadLock()</a> or
<a class="xref" href="https://docs.microsoft.com/dotnet/api/system.threading.readerwriterlockslim.enterupgradeablereadlock#System_Threading_ReaderWriterLockSlim_EnterUpgradeableReadLock">EnterUpgradeableReadLock()</a>, and any writers should take a
write lock with <a class="xref" href="https://docs.microsoft.com/dotnet/api/system.threading.readerwriterlockslim.enterwritelock#System_Threading_ReaderWriterLockSlim_EnterWriteLock">EnterWriteLock()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">ReaderWriterLockSlim WriteSyncObject { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="https://docs.microsoft.com/dotnet/api/system.threading.readerwriterlockslim">ReaderWriterLockSlim</a></td>
<td></td>
</tr>
</tbody>
</table>
<h5 id="IPA_Config_IConfigStore_WriteSyncObject_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>Read and write are read and write to <em>this object</em>, not to the file on disk.</p>
</div>
<h3 id="methods">Methods
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_IConfigStore_ReadFrom_IPA_Config_ConfigProvider_.md&amp;value=---%0Auid%3A%20IPA.Config.IConfigStore.ReadFrom(IPA.Config.ConfigProvider)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/f0a33cc85e12f99d46b4131348f52adc47685286/IPA.Loader/Config/IConfigStore.cs/#L54">View Source</a>
</span>
<a id="IPA_Config_IConfigStore_ReadFrom_" data-uid="IPA.Config.IConfigStore.ReadFrom*"></a>
<h4 id="IPA_Config_IConfigStore_ReadFrom_IPA_Config_ConfigProvider_" data-uid="IPA.Config.IConfigStore.ReadFrom(IPA.Config.ConfigProvider)">ReadFrom(ConfigProvider)</h4>
<div class="markdown level1 summary"><p>Reads the config structure from the given <a class="xref" href="IPA.Config.IConfigProvider.html">IConfigProvider</a> into the current
<a class="xref" href="IPA.Config.IConfigStore.html">IConfigStore</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void ReadFrom(ConfigProvider provider)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="IPA.Config.ConfigProvider.html">ConfigProvider</a></td>
<td><span class="parametername">provider</span></td>
<td><p>the provider to read from</p>
</td>
</tr>
</tbody>
</table>
<h5 id="IPA_Config_IConfigStore_ReadFrom_IPA_Config_ConfigProvider__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The calling code will have entered a write lock on <a class="xref" href="IPA.Config.IConfigStore.html#IPA_Config_IConfigStore_WriteSyncObject">WriteSyncObject</a> when
this is called.</p>
</div>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_IConfigStore_WriteTo_IPA_Config_ConfigProvider_.md&amp;value=---%0Auid%3A%20IPA.Config.IConfigStore.WriteTo(IPA.Config.ConfigProvider)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/f0a33cc85e12f99d46b4131348f52adc47685286/IPA.Loader/Config/IConfigStore.cs/#L43">View Source</a>
</span>
<a id="IPA_Config_IConfigStore_WriteTo_" data-uid="IPA.Config.IConfigStore.WriteTo*"></a>
<h4 id="IPA_Config_IConfigStore_WriteTo_IPA_Config_ConfigProvider_" data-uid="IPA.Config.IConfigStore.WriteTo(IPA.Config.ConfigProvider)">WriteTo(ConfigProvider)</h4>
<div class="markdown level1 summary"><p>Writes the config structure stored by the current <a class="xref" href="IPA.Config.IConfigStore.html">IConfigStore</a> to the given
<a class="xref" href="IPA.Config.IConfigProvider.html">IConfigProvider</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">void WriteTo(ConfigProvider provider)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="IPA.Config.ConfigProvider.html">ConfigProvider</a></td>
<td><span class="parametername">provider</span></td>
<td><p>the provider to write to</p>
</td>
</tr>
</tbody>
</table>
<h5 id="IPA_Config_IConfigStore_WriteTo_IPA_Config_ConfigProvider__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The calling code will have entered a read lock on <a class="xref" href="IPA.Config.IConfigStore.html#IPA_Config_IConfigStore_WriteSyncObject">WriteSyncObject</a> when
this is called.</p>
</div>
<h3 id="extensionmethods">Extension Methods</h3>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_SetField__2___0_System_String___1_">ReflectionUtil.SetField&lt;T, U&gt;(T, String, U)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_GetField__2___1_System_String_">ReflectionUtil.GetField&lt;U, T&gt;(T, String)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_SetProperty__2___0_System_String___1_">ReflectionUtil.SetProperty&lt;T, U&gt;(T, String, U)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_GetProperty__2___1_System_String_">ReflectionUtil.GetProperty&lt;U, T&gt;(T, String)</a>
</div>
<div>
<a class="xref" href="IPA.Utilities.ReflectionUtil.html#IPA_Utilities_ReflectionUtil_InvokeMethod__2___1_System_String_System_Object___">ReflectionUtil.InvokeMethod&lt;U, T&gt;(T, String, Object[])</a>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/new/master/docs/override/new?filename=IPA_Config_IConfigStore.md&amp;value=---%0Auid%3A%20IPA.Config.IConfigStore%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
</li>
<li>
<a href="https://github.com/bsmg/BeatSaber-IPA-Reloaded/blob/f0a33cc85e12f99d46b4131348f52adc47685286/IPA.Loader/Config/IConfigStore.cs/#L14" class="contribution-link">View Source</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<h5>In This Article</h5>
<div></div>
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
<span>Generated by <strong>DocFX</strong></span>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../styles/docfx.js"></script>
<script type="text/javascript" src="../styles/main.js"></script>
</body>
</html>