| Index: device/hid/hid_service.cc
|
| diff --git a/device/hid/hid_service.cc b/device/hid/hid_service.cc
|
| index 8aa7cd4a37755d0b618b233704d9b60a1dee9795..0e2f0d4c7716b4cda9ac777657487bb1204cc15f 100644
|
| --- a/device/hid/hid_service.cc
|
| +++ b/device/hid/hid_service.cc
|
| @@ -20,13 +20,22 @@
|
|
|
| namespace device {
|
|
|
| -namespace {
|
| -
|
| -// The instance will be reset when message loop destroys.
|
| -base::LazyInstance<scoped_ptr<HidService> >::Leaky g_hid_service_ptr =
|
| - LAZY_INSTANCE_INITIALIZER;
|
| +HidService* HidService::Create(
|
| + scoped_refptr<base::MessageLoopProxy> ui_message_loop) {
|
| +#if defined(OS_LINUX) && defined(USE_UDEV)
|
| + return new HidServiceLinux(ui_message_loop);
|
| +#elif defined(OS_MACOSX)
|
| + return new HidServiceMac();
|
| +#elif defined(OS_WIN)
|
| + return new HidServiceWin();
|
| +#else
|
| + return NULL;
|
| +#endif
|
| +}
|
|
|
| -} // namespace
|
| +HidService::~HidService() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| +}
|
|
|
| void HidService::GetDevices(std::vector<HidDeviceInfo>* devices) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| @@ -48,32 +57,9 @@ bool HidService::GetDeviceInfo(const HidDeviceId& device_id,
|
| return true;
|
| }
|
|
|
| -void HidService::WillDestroyCurrentMessageLoop() {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - g_hid_service_ptr.Get().reset(NULL);
|
| -}
|
| -
|
| HidService::HidService() {
|
| base::ThreadRestrictions::AssertIOAllowed();
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - base::MessageLoop::current()->AddDestructionObserver(this);
|
| -}
|
| -
|
| -HidService::~HidService() {
|
| - DCHECK(thread_checker_.CalledOnValidThread());
|
| - base::MessageLoop::current()->RemoveDestructionObserver(this);
|
| -}
|
| -
|
| -HidService* HidService::CreateInstance() {
|
| -#if defined(OS_LINUX) && defined(USE_UDEV)
|
| - return new HidServiceLinux();
|
| -#elif defined(OS_MACOSX)
|
| - return new HidServiceMac();
|
| -#elif defined(OS_WIN)
|
| - return new HidServiceWin();
|
| -#else
|
| - return NULL;
|
| -#endif
|
| }
|
|
|
| void HidService::AddDevice(const HidDeviceInfo& info) {
|
| @@ -94,10 +80,4 @@ const HidService::DeviceMap& HidService::GetDevicesNoEnumerate() const {
|
| return devices_;
|
| }
|
|
|
| -HidService* HidService::GetInstance() {
|
| - if (!g_hid_service_ptr.Get().get())
|
| - g_hid_service_ptr.Get().reset(CreateInstance());
|
| - return g_hid_service_ptr.Get().get();
|
| -}
|
| -
|
| } // namespace device
|
|
|