Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
src/ArduinoJson/Object/ObjectShortcuts.hpp@0:18ba3960b5dd, 2021-03-19 (annotated)
- Committer:
- khaiminhvn
- Date:
- Fri Mar 19 19:30:50 2021 +0000
- Revision:
- 0:18ba3960b5dd
removed extras
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| khaiminhvn | 0:18ba3960b5dd | 1 | // ArduinoJson - arduinojson.org |
| khaiminhvn | 0:18ba3960b5dd | 2 | // Copyright Benoit Blanchon 2014-2021 |
| khaiminhvn | 0:18ba3960b5dd | 3 | // MIT License |
| khaiminhvn | 0:18ba3960b5dd | 4 | |
| khaiminhvn | 0:18ba3960b5dd | 5 | #pragma once |
| khaiminhvn | 0:18ba3960b5dd | 6 | |
| khaiminhvn | 0:18ba3960b5dd | 7 | #include <ArduinoJson/Polyfills/attributes.hpp> |
| khaiminhvn | 0:18ba3960b5dd | 8 | #include <ArduinoJson/Polyfills/type_traits.hpp> |
| khaiminhvn | 0:18ba3960b5dd | 9 | #include <ArduinoJson/Strings/StringAdapters.hpp> |
| khaiminhvn | 0:18ba3960b5dd | 10 | |
| khaiminhvn | 0:18ba3960b5dd | 11 | namespace ARDUINOJSON_NAMESPACE { |
| khaiminhvn | 0:18ba3960b5dd | 12 | template <typename TParent, typename TStringRef> |
| khaiminhvn | 0:18ba3960b5dd | 13 | class MemberProxy; |
| khaiminhvn | 0:18ba3960b5dd | 14 | |
| khaiminhvn | 0:18ba3960b5dd | 15 | template <typename TObject> |
| khaiminhvn | 0:18ba3960b5dd | 16 | class ObjectShortcuts { |
| khaiminhvn | 0:18ba3960b5dd | 17 | public: |
| khaiminhvn | 0:18ba3960b5dd | 18 | // containsKey(const std::string&) const |
| khaiminhvn | 0:18ba3960b5dd | 19 | // containsKey(const String&) const |
| khaiminhvn | 0:18ba3960b5dd | 20 | template <typename TString> |
| khaiminhvn | 0:18ba3960b5dd | 21 | FORCE_INLINE typename enable_if<IsString<TString>::value, bool>::type |
| khaiminhvn | 0:18ba3960b5dd | 22 | containsKey(const TString &key) const; |
| khaiminhvn | 0:18ba3960b5dd | 23 | |
| khaiminhvn | 0:18ba3960b5dd | 24 | // containsKey(char*) const |
| khaiminhvn | 0:18ba3960b5dd | 25 | // containsKey(const char*) const |
| khaiminhvn | 0:18ba3960b5dd | 26 | // containsKey(const __FlashStringHelper*) const |
| khaiminhvn | 0:18ba3960b5dd | 27 | template <typename TChar> |
| khaiminhvn | 0:18ba3960b5dd | 28 | FORCE_INLINE typename enable_if<IsString<TChar *>::value, bool>::type |
| khaiminhvn | 0:18ba3960b5dd | 29 | containsKey(TChar *key) const; |
| khaiminhvn | 0:18ba3960b5dd | 30 | |
| khaiminhvn | 0:18ba3960b5dd | 31 | // operator[](const std::string&) const |
| khaiminhvn | 0:18ba3960b5dd | 32 | // operator[](const String&) const |
| khaiminhvn | 0:18ba3960b5dd | 33 | template <typename TString> |
| khaiminhvn | 0:18ba3960b5dd | 34 | FORCE_INLINE typename enable_if<IsString<TString>::value, |
| khaiminhvn | 0:18ba3960b5dd | 35 | MemberProxy<TObject, TString> >::type |
| khaiminhvn | 0:18ba3960b5dd | 36 | operator[](const TString &key) const; |
| khaiminhvn | 0:18ba3960b5dd | 37 | |
| khaiminhvn | 0:18ba3960b5dd | 38 | // operator[](char*) const |
| khaiminhvn | 0:18ba3960b5dd | 39 | // operator[](const char*) const |
| khaiminhvn | 0:18ba3960b5dd | 40 | // operator[](const __FlashStringHelper*) const |
| khaiminhvn | 0:18ba3960b5dd | 41 | template <typename TChar> |
| khaiminhvn | 0:18ba3960b5dd | 42 | FORCE_INLINE typename enable_if<IsString<TChar *>::value, |
| khaiminhvn | 0:18ba3960b5dd | 43 | MemberProxy<TObject, TChar *> >::type |
| khaiminhvn | 0:18ba3960b5dd | 44 | operator[](TChar *key) const; |
| khaiminhvn | 0:18ba3960b5dd | 45 | |
| khaiminhvn | 0:18ba3960b5dd | 46 | // createNestedArray(const std::string&) const |
| khaiminhvn | 0:18ba3960b5dd | 47 | // createNestedArray(const String&) const |
| khaiminhvn | 0:18ba3960b5dd | 48 | template <typename TString> |
| khaiminhvn | 0:18ba3960b5dd | 49 | FORCE_INLINE ArrayRef createNestedArray(const TString &key) const; |
| khaiminhvn | 0:18ba3960b5dd | 50 | |
| khaiminhvn | 0:18ba3960b5dd | 51 | // createNestedArray(char*) const |
| khaiminhvn | 0:18ba3960b5dd | 52 | // createNestedArray(const char*) const |
| khaiminhvn | 0:18ba3960b5dd | 53 | // createNestedArray(const __FlashStringHelper*) const |
| khaiminhvn | 0:18ba3960b5dd | 54 | template <typename TChar> |
| khaiminhvn | 0:18ba3960b5dd | 55 | FORCE_INLINE ArrayRef createNestedArray(TChar *key) const; |
| khaiminhvn | 0:18ba3960b5dd | 56 | |
| khaiminhvn | 0:18ba3960b5dd | 57 | // createNestedObject(const std::string&) const |
| khaiminhvn | 0:18ba3960b5dd | 58 | // createNestedObject(const String&) const |
| khaiminhvn | 0:18ba3960b5dd | 59 | template <typename TString> |
| khaiminhvn | 0:18ba3960b5dd | 60 | ObjectRef createNestedObject(const TString &key) const; |
| khaiminhvn | 0:18ba3960b5dd | 61 | |
| khaiminhvn | 0:18ba3960b5dd | 62 | // createNestedObject(char*) const |
| khaiminhvn | 0:18ba3960b5dd | 63 | // createNestedObject(const char*) const |
| khaiminhvn | 0:18ba3960b5dd | 64 | // createNestedObject(const __FlashStringHelper*) const |
| khaiminhvn | 0:18ba3960b5dd | 65 | template <typename TChar> |
| khaiminhvn | 0:18ba3960b5dd | 66 | ObjectRef createNestedObject(TChar *key) const; |
| khaiminhvn | 0:18ba3960b5dd | 67 | |
| khaiminhvn | 0:18ba3960b5dd | 68 | private: |
| khaiminhvn | 0:18ba3960b5dd | 69 | const TObject *impl() const { |
| khaiminhvn | 0:18ba3960b5dd | 70 | return static_cast<const TObject *>(this); |
| khaiminhvn | 0:18ba3960b5dd | 71 | } |
| khaiminhvn | 0:18ba3960b5dd | 72 | }; |
| khaiminhvn | 0:18ba3960b5dd | 73 | } // namespace ARDUINOJSON_NAMESPACE |