1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.giraph.bsp; 20 21 /** 22 * State of a coordinated superstep 23 */ 24 public enum SuperstepState { 25 /** Nothing happened yet */ 26 INITIAL(false), 27 /** A worker died during this superstep */ 28 WORKER_FAILURE(false), 29 /** This superstep completed correctly */ 30 THIS_SUPERSTEP_DONE(false), 31 /** All supersteps are complete */ 32 ALL_SUPERSTEPS_DONE(true), 33 /** Execution halted */ 34 CHECKPOINT_AND_HALT(true); 35 36 /** Should we stop execution after this superstep? */ 37 private boolean executionComplete; 38 39 /** 40 * Enum constructor 41 * @param executionComplete is final state? 42 */ 43 SuperstepState(boolean executionComplete) { 44 this.executionComplete = executionComplete; 45 } 46 47 /** 48 * Returns true if execution has to be stopped after this 49 * superstep. 50 * @return whether execution is complete. 51 */ 52 public boolean isExecutionComplete() { 53 return executionComplete; 54 } 55 }