mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Updated the CodeReaderCache to make it easier to test w/performance JUnits.
This commit is contained in:
parent
7aef086165
commit
90c4d131cc
4 changed files with 35 additions and 4 deletions
|
@ -45,4 +45,9 @@ public interface ICodeReaderCache {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public int getCurrentSpace();
|
public int getCurrentSpace();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void flush();
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,4 +62,9 @@ public class EmptyCodeReaderCache implements ICodeReaderCache {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void flush() {
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -295,4 +295,8 @@ public class CodeReaderCache implements ICodeReaderCache {
|
||||||
return cache.getCurrentSpace();
|
return cache.getCurrentSpace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void flush() {
|
||||||
|
cache.flush();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import org.eclipse.cdt.core.dom.ICodeReaderFactory;
|
||||||
import org.eclipse.cdt.core.parser.CodeReader;
|
import org.eclipse.cdt.core.parser.CodeReader;
|
||||||
import org.eclipse.cdt.core.parser.CodeReaderCache;
|
import org.eclipse.cdt.core.parser.CodeReaderCache;
|
||||||
import org.eclipse.cdt.core.parser.ICodeReaderCache;
|
import org.eclipse.cdt.core.parser.ICodeReaderCache;
|
||||||
|
import org.eclipse.core.runtime.Preferences;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author jcamelon
|
* @author jcamelon
|
||||||
|
@ -34,13 +35,29 @@ public class SavedCodeReaderFactory implements ICodeReaderFactory {
|
||||||
private SavedCodeReaderFactory()
|
private SavedCodeReaderFactory()
|
||||||
{
|
{
|
||||||
int size=0;
|
int size=0;
|
||||||
if (CCorePlugin.getDefault() == null || CCorePlugin.getDefault().getPluginPreferences() == null)
|
Preferences pluginPreferences = CCorePlugin.getDefault().getPluginPreferences();
|
||||||
|
if (CCorePlugin.getDefault() == null || pluginPreferences == null)
|
||||||
size = CodeReaderCache.DEFAULT_CACHE_SIZE_IN_MB;
|
size = CodeReaderCache.DEFAULT_CACHE_SIZE_IN_MB;
|
||||||
else
|
else
|
||||||
size = CCorePlugin.getDefault().getPluginPreferences().getInt(CodeReaderCache.CODE_READER_BUFFER);
|
size = pluginPreferences.getInt(CodeReaderCache.CODE_READER_BUFFER);
|
||||||
|
|
||||||
if (size >= 0)
|
if (size > 0)
|
||||||
cache = new CodeReaderCache(size);
|
cache = new CodeReaderCache(size);
|
||||||
|
else if( size == 0 )
|
||||||
|
{
|
||||||
|
//necessary for cache to work headless
|
||||||
|
String [] properties = pluginPreferences.propertyNames();
|
||||||
|
boolean found = false;
|
||||||
|
for( int j = 0; j < properties.length; ++j )
|
||||||
|
if( properties[j].equals( CodeReaderCache.CODE_READER_BUFFER ) )
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !found && size == 0 )
|
||||||
|
cache = new CodeReaderCache(CodeReaderCache.DEFAULT_CACHE_SIZE_IN_MB);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
cache = new CodeReaderCache(CodeReaderCache.DEFAULT_CACHE_SIZE_IN_MB);
|
cache = new CodeReaderCache(CodeReaderCache.DEFAULT_CACHE_SIZE_IN_MB);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue