Sha256: 8796596eb9f6c6383d032d1d33f00858929bc972f27d7b001d5905230c9a50c4

Contents?: true

Size: 1.62 KB

Versions: 17

Compression:

Stored size: 1.62 KB

Contents

//
//  NetworkStatusMonitor.m
//  rhorunner
//
//  Created by Alex Epifanoff on 03.09.12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//


#import "NetworkStatusMonitor.h"
#import "Reachability.h"

#include "common/RhodesApp.h"
#include "common/RhoStd.h"
#include "common/AutoPointer.h"

#include "Rhodes.h"

namespace rho
{
	namespace common
	{
		class IPhoneNetworkStatusMonitor : public INetworkStatusMonitor
		{
		private:
			int m_pollInterval;
			INetworkStatusReceiver* m_receiver;
		public:
			IPhoneNetworkStatusMonitor() : m_pollInterval(20), m_receiver(0) {}
			virtual void setPollInterval(int pollInterval) {
                m_pollInterval = pollInterval;
                [[Rhodes sharedInstance] signalNetworkStatusPollIntervalChanged];
                
            }
			virtual void setNetworkStatusReceiver(INetworkStatusReceiver* receiver) { m_receiver = receiver; }
			int getPollInterval() const { return m_pollInterval; }
			void callNotify(rho::common::enNetworkStatus status) {
				if ( m_receiver != 0 ) {
					m_receiver->onNetworkStatusChanged(status);
				}
			}
		};
	}
}

static rho::common::CAutoPtr<rho::common::IPhoneNetworkStatusMonitor> s_network_status_monitor(new rho::common::IPhoneNetworkStatusMonitor());

extern "C"
{
	void initNetworkMonitoring()
	{
		RHODESAPP().setNetworkStatusMonitor(s_network_status_monitor);
	}
	
    int getNetworkStatusPollInterval()
	{
		return s_network_status_monitor->getPollInterval();
	}
	
	void networkStatusNotify(int status)
	{
		s_network_status_monitor->callNotify(status==0?(rho::common::networkStatusDisconnected):(rho::common::networkStatusConnected));
	}	
}

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
rhodes-7.6.0 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-7.5.1 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-7.4.1 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-7.1.17 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-6.2.0 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-6.0.11 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.18 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.17 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.15 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.0.22 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.2 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.0.7 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.0.3 platform/iphone/Classes/NetworkStatusMonitor.mm
rhodes-5.5.0 platform/iphone/Classes/NetworkStatusMonitor.mm
tauplatform-1.0.3 platform/iphone/Classes/NetworkStatusMonitor.mm
tauplatform-1.0.2 platform/iphone/Classes/NetworkStatusMonitor.mm
tauplatform-1.0.1 platform/iphone/Classes/NetworkStatusMonitor.mm