diff options
Diffstat (limited to 'hal/gonk/GonkSensorsRegistryInterface.h')
-rw-r--r-- | hal/gonk/GonkSensorsRegistryInterface.h | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/hal/gonk/GonkSensorsRegistryInterface.h b/hal/gonk/GonkSensorsRegistryInterface.h deleted file mode 100644 index a9d98d653f..0000000000 --- a/hal/gonk/GonkSensorsRegistryInterface.h +++ /dev/null @@ -1,182 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=2 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/* - * The registry interface gives yo access to the Sensors daemon's Registry - * service. The purpose of the service is to register and setup all other - * services, and make them available. - * - * All public methods and callback methods run on the main thread. - */ - -#ifndef hal_gonk_GonkSensorsRegistryInterface_h -#define hal_gonk_GonkSensorsRegistryInterface_h - -#include <mozilla/ipc/DaemonRunnables.h> -#include <mozilla/ipc/DaemonSocketMessageHandlers.h> -#include "SensorsTypes.h" - -namespace mozilla { -namespace ipc { - -class DaemonSocketPDU; -class DaemonSocketPDUHeader; - -} -} - -namespace mozilla { -namespace hal { - -class SensorsInterface; - -using mozilla::ipc::DaemonSocketPDU; -using mozilla::ipc::DaemonSocketPDUHeader; -using mozilla::ipc::DaemonSocketResultHandler; - -/** - * This class is the result-handler interface for the Sensors - * Registry interface. Methods always run on the main thread. - */ -class GonkSensorsRegistryResultHandler : public DaemonSocketResultHandler -{ -public: - - /** - * Called if a registry command failed. - * - * @param aError The error code. - */ - virtual void OnError(SensorsError aError); - - /** - * The callback method for |GonkSensorsRegistryInterface::RegisterModule|. - * - * @param aProtocolVersion The daemon's protocol version. Make sure it's - * compatible with Gecko's implementation. - */ - virtual void RegisterModule(uint32_t aProtocolVersion); - - /** - * The callback method for |SensorsRegsitryInterface::UnregisterModule|. - */ - virtual void UnregisterModule(); - -protected: - virtual ~GonkSensorsRegistryResultHandler(); -}; - -/** - * This is the module class for the Sensors registry component. It handles - * PDU packing and unpacking. Methods are either executed on the main thread - * or the I/O thread. - * - * This is an internal class, use |GonkSensorsRegistryInterface| instead. - */ -class GonkSensorsRegistryModule -{ -public: - enum { - SERVICE_ID = 0x00 - }; - - enum { - OPCODE_ERROR = 0x00, - OPCODE_REGISTER_MODULE = 0x01, - OPCODE_UNREGISTER_MODULE = 0x02 - }; - - virtual nsresult Send(DaemonSocketPDU* aPDU, - DaemonSocketResultHandler* aRes) = 0; - - // - // Commands - // - - nsresult RegisterModuleCmd(uint8_t aId, - GonkSensorsRegistryResultHandler* aRes); - - nsresult UnregisterModuleCmd(uint8_t aId, - GonkSensorsRegistryResultHandler* aRes); - -protected: - virtual ~GonkSensorsRegistryModule(); - - void HandleSvc(const DaemonSocketPDUHeader& aHeader, - DaemonSocketPDU& aPDU, DaemonSocketResultHandler* aRes); - - // - // Responses - // - - typedef mozilla::ipc::DaemonResultRunnable0< - GonkSensorsRegistryResultHandler, void> - ResultRunnable; - - typedef mozilla::ipc::DaemonResultRunnable1< - GonkSensorsRegistryResultHandler, void, uint32_t, uint32_t> - Uint32ResultRunnable; - - typedef mozilla::ipc::DaemonResultRunnable1< - GonkSensorsRegistryResultHandler, void, SensorsError, SensorsError> - ErrorRunnable; - - void ErrorRsp(const DaemonSocketPDUHeader& aHeader, - DaemonSocketPDU& aPDU, - GonkSensorsRegistryResultHandler* aRes); - - void RegisterModuleRsp(const DaemonSocketPDUHeader& aHeader, - DaemonSocketPDU& aPDU, - GonkSensorsRegistryResultHandler* aRes); - - void UnregisterModuleRsp(const DaemonSocketPDUHeader& aHeader, - DaemonSocketPDU& aPDU, - GonkSensorsRegistryResultHandler* aRes); -}; - -/** - * This class implements the public interface to the Sensors Registry - * component. Use |SensorsInterface::GetRegistryInterface| to retrieve - * an instance. All methods run on the main thread. - */ -class GonkSensorsRegistryInterface final -{ -public: - GonkSensorsRegistryInterface(GonkSensorsRegistryModule* aModule); - ~GonkSensorsRegistryInterface(); - - /** - * Sends a RegisterModule command to the Sensors daemon. When the - * result handler's |RegisterModule| method gets called, the service - * has been registered successfully and can be used. - * - * @param aId The id of the service that is to be registered. - * @param aRes The result handler. - */ - void RegisterModule(uint8_t aId, GonkSensorsRegistryResultHandler* aRes); - - /** - * Sends an UnregisterModule command to the Sensors daemon. The service - * should not be used afterwards until it has been registered again. - * - * @param aId The id of the service that is to be unregistered. - * @param aRes The result handler. - */ - void UnregisterModule(uint8_t aId, GonkSensorsRegistryResultHandler* aRes); - -private: - void DispatchError(GonkSensorsRegistryResultHandler* aRes, - SensorsError aError); - void DispatchError(GonkSensorsRegistryResultHandler* aRes, - nsresult aRv); - - GonkSensorsRegistryModule* mModule; -}; - -} // namespace hal -} // namespace mozilla - -#endif // hal_gonk_GonkSensorsRegistryInterface_h |