this is using the mbed os version 5-13-1

Dependencies:   mbed-http

Committer:
ocomeni
Date:
Thu Mar 14 21:34:06 2019 +0000
Revision:
75:08eff6258e1b
Ble Security example now working!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ocomeni 75:08eff6258e1b 1 /* mbed Microcontroller Library
ocomeni 75:08eff6258e1b 2 * Copyright (c) 2018 ARM Limited
ocomeni 75:08eff6258e1b 3 *
ocomeni 75:08eff6258e1b 4 * Licensed under the Apache License, Version 2.0 (the "License");
ocomeni 75:08eff6258e1b 5 * you may not use this file except in compliance with the License.
ocomeni 75:08eff6258e1b 6 * You may obtain a copy of the License at
ocomeni 75:08eff6258e1b 7 *
ocomeni 75:08eff6258e1b 8 * http://www.apache.org/licenses/LICENSE-2.0
ocomeni 75:08eff6258e1b 9 *
ocomeni 75:08eff6258e1b 10 * Unless required by applicable law or agreed to in writing, software
ocomeni 75:08eff6258e1b 11 * distributed under the License is distributed on an "AS IS" BASIS,
ocomeni 75:08eff6258e1b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ocomeni 75:08eff6258e1b 13 * See the License for the specific language governing permissions and
ocomeni 75:08eff6258e1b 14 * limitations under the License.
ocomeni 75:08eff6258e1b 15 */
ocomeni 75:08eff6258e1b 16
ocomeni 75:08eff6258e1b 17 #ifndef BLE_COMMON_BOUNDED_H_
ocomeni 75:08eff6258e1b 18 #define BLE_COMMON_BOUNDED_H_
ocomeni 75:08eff6258e1b 19
ocomeni 75:08eff6258e1b 20 #include <stdint.h>
ocomeni 75:08eff6258e1b 21
ocomeni 75:08eff6258e1b 22 namespace ble {
ocomeni 75:08eff6258e1b 23
ocomeni 75:08eff6258e1b 24 /**
ocomeni 75:08eff6258e1b 25 * Restrict values of an integer type to a defined range.
ocomeni 75:08eff6258e1b 26 *
ocomeni 75:08eff6258e1b 27 * The range is a closed interval that includes its left-bound (Min) and
ocomeni 75:08eff6258e1b 28 * right-bound value (Max).
ocomeni 75:08eff6258e1b 29 *
ocomeni 75:08eff6258e1b 30 * @tparam Rep The C++ integer type used to represent the values.
ocomeni 75:08eff6258e1b 31 * @tparam Min Minimum value allowed.
ocomeni 75:08eff6258e1b 32 * @tparam Max Maximum value allowed.
ocomeni 75:08eff6258e1b 33 */
ocomeni 75:08eff6258e1b 34 template<typename Rep, Rep Min, Rep Max>
ocomeni 75:08eff6258e1b 35 struct Bounded {
ocomeni 75:08eff6258e1b 36 /**
ocomeni 75:08eff6258e1b 37 * Construct a bounded integer.
ocomeni 75:08eff6258e1b 38 *
ocomeni 75:08eff6258e1b 39 * If v is out of the range [Min : Max], then if it is less than Min, the
ocomeni 75:08eff6258e1b 40 * value of the bounded integer will be Min. If it greater than Max, then
ocomeni 75:08eff6258e1b 41 * the value of the bounded integer will be Max.
ocomeni 75:08eff6258e1b 42 *
ocomeni 75:08eff6258e1b 43 * @param v The value to store.
ocomeni 75:08eff6258e1b 44 */
ocomeni 75:08eff6258e1b 45 Bounded(Rep v) : _value(v)
ocomeni 75:08eff6258e1b 46 {
ocomeni 75:08eff6258e1b 47 if (v < Min) {
ocomeni 75:08eff6258e1b 48 _value = v;
ocomeni 75:08eff6258e1b 49 } else if (v > Max) {
ocomeni 75:08eff6258e1b 50 _value = v;
ocomeni 75:08eff6258e1b 51 }
ocomeni 75:08eff6258e1b 52 }
ocomeni 75:08eff6258e1b 53
ocomeni 75:08eff6258e1b 54 /**
ocomeni 75:08eff6258e1b 55 * Access the inner value.
ocomeni 75:08eff6258e1b 56 *
ocomeni 75:08eff6258e1b 57 * @return The current value.
ocomeni 75:08eff6258e1b 58 */
ocomeni 75:08eff6258e1b 59 Rep value() const
ocomeni 75:08eff6258e1b 60 {
ocomeni 75:08eff6258e1b 61 return _value;
ocomeni 75:08eff6258e1b 62 }
ocomeni 75:08eff6258e1b 63
ocomeni 75:08eff6258e1b 64 /**
ocomeni 75:08eff6258e1b 65 * The left-bound value.
ocomeni 75:08eff6258e1b 66 *
ocomeni 75:08eff6258e1b 67 * @return The lowest value that this type can represent
ocomeni 75:08eff6258e1b 68 */
ocomeni 75:08eff6258e1b 69 static Rep min()
ocomeni 75:08eff6258e1b 70 {
ocomeni 75:08eff6258e1b 71 return Min;
ocomeni 75:08eff6258e1b 72 }
ocomeni 75:08eff6258e1b 73
ocomeni 75:08eff6258e1b 74 /**
ocomeni 75:08eff6258e1b 75 * The right-bound value.
ocomeni 75:08eff6258e1b 76 *
ocomeni 75:08eff6258e1b 77 * @return The highest value that this type can represent
ocomeni 75:08eff6258e1b 78 */
ocomeni 75:08eff6258e1b 79 static Rep max()
ocomeni 75:08eff6258e1b 80 {
ocomeni 75:08eff6258e1b 81 return Max;
ocomeni 75:08eff6258e1b 82 }
ocomeni 75:08eff6258e1b 83
ocomeni 75:08eff6258e1b 84 /**
ocomeni 75:08eff6258e1b 85 * The left-bound value.
ocomeni 75:08eff6258e1b 86 */
ocomeni 75:08eff6258e1b 87 static const Rep MIN = Min;
ocomeni 75:08eff6258e1b 88
ocomeni 75:08eff6258e1b 89 /**
ocomeni 75:08eff6258e1b 90 * The right-bound value.
ocomeni 75:08eff6258e1b 91 */
ocomeni 75:08eff6258e1b 92 static const Rep MAX = Max;
ocomeni 75:08eff6258e1b 93
ocomeni 75:08eff6258e1b 94 private:
ocomeni 75:08eff6258e1b 95 Rep _value;
ocomeni 75:08eff6258e1b 96 };
ocomeni 75:08eff6258e1b 97
ocomeni 75:08eff6258e1b 98 /* ---------------------- Static variable initialization -------------------- */
ocomeni 75:08eff6258e1b 99
ocomeni 75:08eff6258e1b 100 template<typename T, T Min, T Max>
ocomeni 75:08eff6258e1b 101 const T Bounded<T, Min, Max>::MIN;
ocomeni 75:08eff6258e1b 102
ocomeni 75:08eff6258e1b 103 template<typename T, T Min, T Max>
ocomeni 75:08eff6258e1b 104 const T Bounded<T, Min, Max>::MAX;
ocomeni 75:08eff6258e1b 105
ocomeni 75:08eff6258e1b 106 } // namespace ble
ocomeni 75:08eff6258e1b 107
ocomeni 75:08eff6258e1b 108 #endif //BLE_COMMON_BOUNDED_H_