]> source.dussan.org Git - sonarqube.git/blob
a54f53f7f8fb5eb77f732ff87aa01735ce00fd05
[sonarqube.git] /
1 /*
2  * SonarQube
3  * Copyright (C) 2009-2017 SonarSource SA
4  * mailto:info AT sonarsource DOT com
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 3 of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19  */
20 package org.sonar.application.process;
21
22 import org.sonar.process.ProcessId;
23 import org.sonar.process.sharedmemoryfile.ProcessCommands;
24
25 import static java.util.Objects.requireNonNull;
26
27 class ProcessCommandsProcessMonitor extends AbstractProcessMonitor {
28
29   private final ProcessCommands commands;
30
31   ProcessCommandsProcessMonitor(Process process, ProcessId processId, ProcessCommands commands) {
32     super(process, processId);
33     this.commands = requireNonNull(commands, "commands can't be null");
34   }
35
36   /**
37    * Whether the process has set the operational flag (in ipc shared memory)
38    */
39   @Override
40   public boolean isOperational() {
41     return commands.isOperational();
42   }
43
44   /**
45    * Send request to gracefully stop to the process (via ipc shared memory)
46    */
47   @Override
48   public void askForStop() {
49     commands.askForStop();
50   }
51
52   /**
53    * Whether the process asked for a full restart (via ipc shared memory)
54    */
55   @Override
56   public boolean askedForRestart() {
57     return commands.askedForRestart();
58   }
59
60   /**
61    * Removes the flag in ipc shared memory so that next call to {@link #askedForRestart()}
62    * returns {@code false}, except if meanwhile process asks again for restart.
63    */
64   @Override
65   public void acknowledgeAskForRestart() {
66     commands.acknowledgeAskForRestart();
67   }
68
69 }