001 /* 002 * Cumulus4j - Securing your data in the cloud - http://cumulus4j.org 003 * Copyright (C) 2011 NightLabs Consulting GmbH 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 package org.cumulus4j.store.crypto.keymanager.messagebroker.pmf; 019 020 /** 021 * A <code>PendingRequest</code>'s {@link PendingRequest#getStatus() status}. 022 * <p> 023 * The {@link MessageBrokerPMF} first assigns the status {@link #waitingForProcessing} 024 * when a new request comes in when a thread enters the 025 * {@link MessageBrokerPMF#query(Class, org.cumulus4j.keymanager.back.shared.Request) 026 * query(...)} method. 027 * </p> 028 * <p> 029 * When a key-manager obtains the request by calling {@link MessageBrokerPMF#pollRequest(String) pollRequest(...)}, 030 * the status changes to {@link #currentlyBeingProcessed}. 031 * </p> 032 * <p> 033 * Finally, when the {@link MessageBrokerPMF#pushResponse(org.cumulus4j.keymanager.back.shared.Response) pushResponse(...)} 034 * method is called, the response is associated with the request 035 * (via {@link PendingRequest#setResponse(org.cumulus4j.keymanager.back.shared.Response)}) and the status advances to {@link #completed}. 036 * </p> 037 * <p> 038 * When the {@link MessageBrokerPMF#query(Class, org.cumulus4j.keymanager.back.shared.Request) 039 * query(...)} method picks up the response, it finally deletes the {@link PendingRequest} from the datastore. 040 * </p> 041 * 042 * @author Marco หงุ่ยตระกูล-Schulze - marco at nightlabs dot de 043 */ 044 public enum PendingRequestStatus 045 { 046 waitingForProcessing, 047 currentlyBeingProcessed, 048 completed 049 }