/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
NoState() : FutureException("No state") {}
};
+[[noreturn]] void throwNoState();
+
class PromiseAlreadySatisfied : public FutureException {
public:
PromiseAlreadySatisfied() : FutureException("Promise already satisfied") {}
};
+[[noreturn]] void throwPromiseAlreadySatisfied();
+
class FutureNotReady : public FutureException {
public:
FutureNotReady() : FutureException("Future not ready") {}
};
+[[noreturn]] void throwFutureNotReady();
+
class FutureAlreadyRetrieved : public FutureException {
public:
FutureAlreadyRetrieved() : FutureException("Future already retrieved") {}
};
+[[noreturn]] void throwFutureAlreadyRetrieved();
+
class FutureCancellation : public FutureException {
public:
FutureCancellation() : FutureException("Future was cancelled") {}
TimedOut() : FutureException("Timed out") {}
};
+[[noreturn]] void throwTimedOut();
+
class PredicateDoesNotObtain : public FutureException {
public:
PredicateDoesNotObtain() : FutureException("Predicate does not obtain") {}
};
+[[noreturn]] void throwPredicateDoesNotObtain();
+
+struct NoFutureInSplitter : FutureException {
+ NoFutureInSplitter() : FutureException("No Future in this FutureSplitter") {}
+};
+
+[[noreturn]] void throwNoFutureInSplitter();
}