[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Core startup/shutdown
|
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.86
diff -u -r1.86 ChangeLog
--- ChangeLog 9 Apr 2003 03:07:30 -0000 1.86
+++ ChangeLog 10 Apr 2003 01:10:22 -0000
@@ -1,3 +1,18 @@
+2003-04-09 Alain Magloire
+
+ Give a chance to the manager to initialize and shutdown gracefully.
+ The CCorePlugin will call the managers, indexer, coreModel, CDescriptorManager
+ startup() method and shutdown() method.
+
+ * src/org/eclipse/cdt/core/CCorePlugin.java:
+ Call {IndexModel,CoreModel}.{startup,shutdown}().
+ * model/org/eclipse/cdt/core/model/CoreModel.java:
+ New methods startup/shutdown.
+ * model/org/eclipse/cdt/internal/core/mode/CModelManager.java:
+ implement startup/shutdown.
+ * index/org/eclipse/cdt/core/model/IndexModel.java:
+ New methods startup/shutdown.
+
2003-04-08 Alain Magloire
* model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java:
Index: index/org/eclipse/cdt/core/index/IndexModel.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/IndexModel.java,v
retrieving revision 1.4
diff -u -r1.4 IndexModel.java
--- index/org/eclipse/cdt/core/index/IndexModel.java 12 Nov 2002 22:16:00 -0000 1.4
+++ index/org/eclipse/cdt/core/index/IndexModel.java 10 Apr 2003 01:10:23 -0000
@@ -89,6 +89,20 @@
}
/**
+ *
+ */
+ public void startup() {
+ manager.startup();
+ }
+
+ /**
+ *
+ */
+ public void shutdown() {
+ manager.shutdown();
+ }
+
+ /**
* Initialize default index Model.
*/
public static IndexModel getDefault() {
@@ -101,4 +115,5 @@
private IndexModel () {
}
+
}
Index: index/org/eclipse/cdt/internal/core/index/IndexManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/IndexManager.java,v
retrieving revision 1.8
diff -u -r1.8 IndexManager.java
--- index/org/eclipse/cdt/internal/core/index/IndexManager.java 27 Mar 2003 19:29:40 -0000 1.8
+++ index/org/eclipse/cdt/internal/core/index/IndexManager.java 10 Apr 2003 01:10:24 -0000
@@ -78,7 +78,7 @@
return projectsMap;
}
- protected void init () {
+ public void startup () {
requestList = new RequestList();
projectsMap = Collections.synchronizedMap(new HashMap());
CTagsRunner ctags = new CTagsRunner(this);
@@ -155,7 +155,9 @@
public void clearRequestList(IResource resource) {
if (resource instanceof IFile) {
- requestList.removeItem(resource);
+ if (requestList != null) {
+ requestList.removeItem(resource);
+ }
} else if (resource instanceof IContainer) {
try {
IContainer container = (IContainer)resource;
@@ -189,7 +191,9 @@
public void addFile(IFile file) {
if (CoreModel.getDefault().isTranslationUnit(file) &&
IndexModel.getDefault().isEnabled(file.getProject())) {
- requestList.addItem(file);
+ if (requestList != null) {
+ requestList.addItem(file);
+ }
}
}
@@ -248,7 +252,6 @@
public static IndexManager getDefault() {
if (indexManager == null) {
indexManager = new IndexManager();
- indexManager.init();
// Register to the C Core Model for C specific changes.
CoreModel.getDefault().addElementChangedListener(indexManager);
}
Index: index/org/eclipse/cdt/internal/core/index/RequestList.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/RequestList.java,v
retrieving revision 1.2
diff -u -r1.2 RequestList.java
--- index/org/eclipse/cdt/internal/core/index/RequestList.java 12 Nov 2002 20:52:39 -0000 1.2
+++ index/org/eclipse/cdt/internal/core/index/RequestList.java 10 Apr 2003 01:10:24 -0000
@@ -54,8 +54,8 @@
//print("in addItem() - leaving");
}
- private static void print(String msg) {
- String name = Thread.currentThread().getName();
- System.out.println(name + ": " + msg);
- }
+// private static void print(String msg) {
+// String name = Thread.currentThread().getName();
+// System.out.println(name + ": " + msg);
+// }
}
Index: model/org/eclipse/cdt/core/model/CoreModel.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java,v
retrieving revision 1.10
diff -u -r1.10 CoreModel.java
--- model/org/eclipse/cdt/core/model/CoreModel.java 27 Mar 2003 16:04:19 -0000 1.10
+++ model/org/eclipse/cdt/core/model/CoreModel.java 10 Apr 2003 01:10:25 -0000
@@ -185,6 +185,17 @@
manager.removeElementChangedListener(listener);
}
+ /**
+ * @see Plugin#startup
+ */
+ public void startup() {
+ manager.startup();
+ }
+
+ public void shutdown() {
+ manager.shutdown();
+ }
+
private CoreModel() {
}
Index: model/org/eclipse/cdt/internal/core/model/CModelManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java,v
retrieving revision 1.20
diff -u -r1.20 CModelManager.java
--- model/org/eclipse/cdt/internal/core/model/CModelManager.java 2 Apr 2003 04:55:44 -0000 1.20
+++ model/org/eclipse/cdt/internal/core/model/CModelManager.java 10 Apr 2003 01:10:27 -0000
@@ -747,5 +747,25 @@
protected void removeInfo(ICElement element) {
this.cache.removeInfo(element);
}
+
+ /**
+ *
+ */
+ public void startup() {
+ // Do any initialization.
+ }
+
+ /**
+ *
+ */
+ public void shutdown() {
+ // Do any shutdown of services.
+ BinaryRunner[] runners = (BinaryRunner[])binaryRunners.values().toArray(new BinaryRunner[0]);
+ for (int i = 0; i < runners.length; i++) {
+ if (runners[i].isAlive()) {
+ runners[i].interrupt();
+ }
+ }
+ }
}
Index: model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java,v
retrieving revision 1.6
diff -u -r1.6 DeltaProcessor.java
--- model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java 9 Apr 2003 20:08:50 -0000 1.6
+++ model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java 10 Apr 2003 01:10:28 -0000
@@ -10,7 +10,6 @@
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ICElementDelta;
import org.eclipse.cdt.core.model.ICModel;
-import org.eclipse.cdt.core.model.ICModelStatusConstants;
import org.eclipse.cdt.core.model.IParent;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -249,11 +248,6 @@
return CoreModel.getDefault().hasCNature(project);
}
return false;
- }
-
-
- private CModelException newInvalidElementType() {
- return new CModelException(new CModelStatus(ICModelStatusConstants.INVALID_ELEMENT_TYPES));
}
/**
Index: src/org/eclipse/cdt/core/CCorePlugin.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java,v
retrieving revision 1.16
diff -u -r1.16 CCorePlugin.java
--- src/org/eclipse/cdt/core/CCorePlugin.java 2 Apr 2003 21:30:22 -0000 1.16
+++ src/org/eclipse/cdt/core/CCorePlugin.java 10 Apr 2003 01:10:30 -0000
@@ -52,6 +52,8 @@
private static ResourceBundle fgResourceBundle;
private CDescriptorManager fDescriptorManager;
+ private CoreModel fCoreModel;
+ private IndexModel fIndexModel;
// -------- static methods --------
@@ -113,7 +115,15 @@
*/
public void shutdown() throws CoreException {
super.shutdown();
- fDescriptorManager.shutdown();
+ if (fDescriptorManager != null) {
+ fDescriptorManager.shutdown();
+ }
+ if (fIndexModel != null) {
+ fIndexModel.shutdown();
+ }
+ if (fCoreModel != null) {
+ fCoreModel.shutdown();
+ }
}
/**
@@ -123,9 +133,13 @@
super.startup();
// Fired up the model.
- getCoreModel();
+ fCoreModel = CoreModel.getDefault();
+ fCoreModel.startup();
+
// Fired up the indexer. It should delay itself for 10 seconds
- getIndexModel();
+ fIndexModel = IndexModel.getDefault();
+ fIndexModel.startup();
+
fDescriptorManager = new CDescriptorManager();
fDescriptorManager.startup();
@@ -206,11 +220,11 @@
}
public CoreModel getCoreModel() {
- return CoreModel.getDefault();
+ return fCoreModel;
}
public IndexModel getIndexModel() {
- return IndexModel.getDefault();
+ return fIndexModel;
}
public ICDescriptor getCProjectDescription(IProject project) throws CoreException {