tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

seed_gen_exception.h (1894B)


      1 // Copyright 2017 The Abseil Authors.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //      https://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 //
     15 // -----------------------------------------------------------------------------
     16 // File: seed_gen_exception.h
     17 // -----------------------------------------------------------------------------
     18 //
     19 // This header defines an exception class which may be thrown if unpredictable
     20 // events prevent the derivation of suitable seed-material for constructing a
     21 // bit generator conforming to [rand.req.urng] (eg. entropy cannot be read from
     22 // /dev/urandom on a Unix-based system).
     23 //
     24 // Note: if exceptions are disabled, `std::terminate()` is called instead.
     25 
     26 #ifndef ABSL_RANDOM_SEED_GEN_EXCEPTION_H_
     27 #define ABSL_RANDOM_SEED_GEN_EXCEPTION_H_
     28 
     29 #include <exception>
     30 
     31 #include "absl/base/config.h"
     32 
     33 namespace absl {
     34 ABSL_NAMESPACE_BEGIN
     35 
     36 //------------------------------------------------------------------------------
     37 // SeedGenException
     38 //------------------------------------------------------------------------------
     39 class SeedGenException : public std::exception {
     40 public:
     41  SeedGenException() = default;
     42  ~SeedGenException() override;
     43  const char* what() const noexcept override;
     44 };
     45 
     46 namespace random_internal {
     47 
     48 // throw delegator
     49 [[noreturn]] void ThrowSeedGenException();
     50 
     51 }  // namespace random_internal
     52 ABSL_NAMESPACE_END
     53 }  // namespace absl
     54 
     55 #endif  // ABSL_RANDOM_SEED_GEN_EXCEPTION_H_