X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/Pods/Realm/include/sync/impl/apple/network_reachability_observer.hpp diff --git a/iOS/Pods/Realm/include/sync/impl/apple/network_reachability_observer.hpp b/iOS/Pods/Realm/include/sync/impl/apple/network_reachability_observer.hpp new file mode 100644 index 0000000..f782563 --- /dev/null +++ b/iOS/Pods/Realm/include/sync/impl/apple/network_reachability_observer.hpp @@ -0,0 +1,69 @@ +//////////////////////////////////////////////////////////////////////////// +// +// Copyright 2016 Realm Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////// + +#ifndef REALM_OS_NETWORK_REACHABILITY_OBSERVER_HPP +#define REALM_OS_NETWORK_REACHABILITY_OBSERVER_HPP + +#include +#include + +#include +#include + +#include "sync/impl/network_reachability.hpp" + +#if NETWORK_REACHABILITY_AVAILABLE + +#include "sync/impl/apple/system_configuration.hpp" + +namespace realm { +namespace _impl { + +enum NetworkReachabilityStatus { + NotReachable, + ReachableViaWiFi, + ReachableViaWWAN +}; + +class NetworkReachabilityObserver { +public: + NetworkReachabilityObserver(util::Optional hostname, + std::function handler); + + ~NetworkReachabilityObserver(); + + NetworkReachabilityStatus reachability_status() const; + + bool start_observing(); + void stop_observing(); + +private: + void reachability_changed(); + + util::CFPtr m_reachability_ref; + NetworkReachabilityStatus m_previous_status; + dispatch_queue_t m_callback_queue; + std::function m_change_handler; +}; + +} // namespace _impl +} // namespace realm + +#endif // NETWORK_REACHABILITY_AVAILABLE + +#endif // REALM_OS_NETWORK_REACHABILITY_OBSERVER_HPP