Clover Coverage Report
Coverage timestamp: Fri Feb 14 2014 07:28:57 UTC
0   55   0   -
0   9   -   0
0     -  
1    
 
  ModuleArbiter       Line # 27 0 0 - -1.0
 
No Tests
 
1    /* This file is part of the project "Hilbert II" - http://www.qedeq.org
2    *
3    * Copyright 2000-2014, Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
10    * This program is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13    * GNU General Public License for more details.
14    */
15   
16    package org.qedeq.kernel.bo.module;
17   
18    import org.qedeq.kernel.bo.common.QedeqBoSet;
19    import org.qedeq.kernel.bo.common.ServiceJob;
20    import org.qedeq.kernel.se.visitor.InterruptException;
21   
22    /**
23    * Get locks for modules.
24    *
25    * @author Michael Meyling
26    */
 
27    public interface ModuleArbiter {
28   
29    /**
30    * Lock QEDEQ module for exclusive read and write access.
31    *
32    * @param call This service call acquires the lock.
33    * @return The call locked this module newly. Before this call the module was not locked.
34    * @throws InterruptException Lock acquirement interrupted.
35    */
36    public boolean lockRequiredModule(InternalModuleServiceCall call) throws InterruptException;
37   
38    /**
39    * Unlock module again.
40    *
41    * @param call This call must have acquired the lock.
42    * @return Was this module even locked?
43    */
44    public boolean unlockRequiredModule(InternalModuleServiceCall call);
45   
46    /**
47    * Get all blocked modules from given process.
48    *
49    * @param process Get all modules blocked by this job.
50    *
51    * @return Set of blocked modules.
52    */
53    public QedeqBoSet getBlockedModules(ServiceJob process);
54   
55    }