1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/mobilemessage/src/SmsServicesFactory.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,77 @@ 1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#include "SmsServicesFactory.h" 1.10 +#include "nsXULAppAPI.h" 1.11 +#include "ipc/SmsIPCService.h" 1.12 +#ifdef MOZ_WIDGET_ANDROID 1.13 +#include "android/MobileMessageDatabaseService.h" 1.14 +#include "android/SmsService.h" 1.15 +#elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) 1.16 +#include "gonk/SmsService.h" 1.17 +#endif 1.18 +#include "nsServiceManagerUtils.h" 1.19 + 1.20 +#define RIL_MMSSERVICE_CONTRACTID "@mozilla.org/mms/rilmmsservice;1" 1.21 +#define RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID "@mozilla.org/mobilemessage/rilmobilemessagedatabaseservice;1" 1.22 + 1.23 +namespace mozilla { 1.24 +namespace dom { 1.25 +namespace mobilemessage { 1.26 + 1.27 +/* static */ already_AddRefed<nsISmsService> 1.28 +SmsServicesFactory::CreateSmsService() 1.29 +{ 1.30 + nsCOMPtr<nsISmsService> smsService; 1.31 + 1.32 + if (XRE_GetProcessType() == GeckoProcessType_Content) { 1.33 + smsService = new SmsIPCService(); 1.34 + } else { 1.35 +#ifdef MOZ_WIDGET_ANDROID 1.36 + smsService = new SmsService(); 1.37 +#elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) 1.38 + smsService = new SmsService(); 1.39 +#endif 1.40 + } 1.41 + 1.42 + return smsService.forget(); 1.43 +} 1.44 + 1.45 +/* static */ already_AddRefed<nsIMobileMessageDatabaseService> 1.46 +SmsServicesFactory::CreateMobileMessageDatabaseService() 1.47 +{ 1.48 + nsCOMPtr<nsIMobileMessageDatabaseService> mobileMessageDBService; 1.49 + if (XRE_GetProcessType() == GeckoProcessType_Content) { 1.50 + mobileMessageDBService = new SmsIPCService(); 1.51 + } else { 1.52 +#ifdef MOZ_WIDGET_ANDROID 1.53 + mobileMessageDBService = new MobileMessageDatabaseService(); 1.54 +#elif defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) 1.55 + mobileMessageDBService = do_GetService(RIL_MOBILE_MESSAGE_DATABASE_SERVICE_CONTRACTID); 1.56 +#endif 1.57 + } 1.58 + 1.59 + return mobileMessageDBService.forget(); 1.60 +} 1.61 + 1.62 +/* static */ already_AddRefed<nsIMmsService> 1.63 +SmsServicesFactory::CreateMmsService() 1.64 +{ 1.65 + nsCOMPtr<nsIMmsService> mmsService; 1.66 + 1.67 + if (XRE_GetProcessType() == GeckoProcessType_Content) { 1.68 + mmsService = new SmsIPCService(); 1.69 + } else { 1.70 +#if defined(MOZ_WIDGET_GONK) && defined(MOZ_B2G_RIL) 1.71 + mmsService = do_CreateInstance(RIL_MMSSERVICE_CONTRACTID); 1.72 +#endif 1.73 + } 1.74 + 1.75 + return mmsService.forget(); 1.76 +} 1.77 + 1.78 +} // namespace mobilemessage 1.79 +} // namespace dom 1.80 +} // namespace mozilla