📄 intelmobilecontextclassprovider.h
字号:
/*
Copyright (c) 2008, Intel Corporation.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
* Neither the name of Intel Corporation nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
*/#pragma once//==============================================================================// IntelMobileContextClassProvider.h//// Declaration of the class for the Context class provider. // Declaration of the event for the connectivity//// ////==============================================================================#include "inc/context/context_ClassObject.h"#include "Instance_Connectivity.h"#include "Instance_Power.h"#include "Instance_Bandwidth.h"#include "inc/framework/win2linux.h"#define EVENT_IPADDR_CHANGE 0#define EVENT_ROUTE_CHANGE 1#define EVENT_CONNECT 2#define EVENT_DISCONNECT 3#define EVENT_BANDWIDTHCHANGED 4#define EVENT_UNKNOWN 5#define CONNECT_CHECK_TIME 1500 // 1.5 seconds to check connection#define EXIT_DELAY 1000//#define MAX_TIME 0xFFFFFFFF//#define MAX_DESC_LENGTH 256// error codes#define CCONTEXT_SUCCESS 0#define CCONTEXT_FAIL -1class ContextClassProvider : public IClassProvider, public LoggerBase{public: ContextClassProvider() : LoggerBase ( GetLayer()->GetLog() ), m_szVersion( IntelMobileText( "1.1" ) ), // Highest version of framework supported m_szType( IntelMobileText( "Context" ) ), // Network, Battery, Processor, etc. m_szName( IntelMobileText( "ContextClassProvider" ) ), // DLL name //m_hWnd( NULL ), m_ContextClass(GetLayer()->GetLog()), m_PowerLastSource(255), m_PowerFullyCharged(false) { InitializeCriticalSection( &m_DefaultProviderCS ); } ~ContextClassProvider();public: // ProviderClass methods bool Load(); bool Unload(); bool Scan();// bool WindowNotification( /*in*/ HWND hWnd, /*in*/ UINT iMsg, /*in*/ WPARAM wParam, /*in*/ LPARAM lParam ); const IntelMobileString& GetVersion() { return m_szVersion; } const IntelMobileString& GetName() { return m_szName; } const IntelMobileString& GetType() { return m_szType; } // IClassProvider methods ServerClassObject& GetClassObject( /*in*/ const IntelMobileString& sType = IntelMobileText("Context") ) { return m_ContextClass; } ServerInstanceObject* CreateInstance( /*in*/ const IntelMobileString& externalKey, /*in*/ const IntelMobileString& internalKey, /*in*/ const IntelMobileString& sType ); // ContextClassProvider methods// void SetWindowHandle( /*in*/ HWND& hWnd ) { m_hWnd = hWnd; }private: // Wrappers for Objects ServerContextClassObject m_ContextClass; const IntelMobileString m_szVersion; const IntelMobileString m_szName; const IntelMobileString m_szType; // Support methods and membersprivate:/* inline*/void Lock() { EnterCriticalSection( &m_DefaultProviderCS ); }/* inline*/void Unlock() { LeaveCriticalSection( &m_DefaultProviderCS ); } /*unsigned int ContextClassProvider::ConnectCB(void *pParam); unsigned int ContextClassProvider::DisconnectCB(void *pParam); unsigned int ContextClassProvider::RouteTableChangeCB(void *pParam); unsigned int ContextClassProvider::IPAddressChangeCB(void *pParam);*/ int ContextClassProvider::EventRegister(unsigned int EventId); ServerInstanceObject * GetInstance(const IntelMobileString& internalKey); /*void ContextClassProvider::MonitorConnectState(int *pNotUsed);*/ CRITICAL_SECTION m_DefaultProviderCS;// HWND m_hWnd;private: // properties for events IntelMobileInt m_PowerLastSource; bool m_PowerFullyCharged;};#ifdef __cplusplusextern "C" {#endif unsigned int RouteTableChangeCB(void *pParam); unsigned int IPAddressChangeCB(void *pParam); unsigned int ConnectStateChangeCB(void *pParam); #ifdef __cplusplus}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -