summaryrefslogtreecommitdiff
path: root/hal/gonk/GonkSensorsInterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'hal/gonk/GonkSensorsInterface.h')
-rw-r--r--hal/gonk/GonkSensorsInterface.h191
1 files changed, 0 insertions, 191 deletions
diff --git a/hal/gonk/GonkSensorsInterface.h b/hal/gonk/GonkSensorsInterface.h
deleted file mode 100644
index 6e356dc364..0000000000
--- a/hal/gonk/GonkSensorsInterface.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim: set ts=8 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 sensors interface gives you access to the low-level sensors code
- * in a platform-independent manner. The interfaces in this file allow
- * for starting an stopping the sensors driver. Specific functionality
- * is implemented in sub-interfaces.
- */
-
-#ifndef hal_gonk_GonkSensorsInterface_h
-#define hal_gonk_GonkSensorsInterface_h
-
-#include <mozilla/ipc/DaemonSocketConsumer.h>
-#include <mozilla/ipc/DaemonSocketMessageHandlers.h>
-#include <mozilla/ipc/ListenSocketConsumer.h>
-#include <mozilla/UniquePtr.h>
-#include "SensorsTypes.h"
-
-namespace mozilla {
-namespace ipc {
-
-class DaemonSocket;
-class ListenSocket;
-
-}
-}
-
-namespace mozilla {
-namespace hal {
-
-class GonkSensorsPollInterface;
-class GonkSensorsProtocol;
-class GonkSensorsRegistryInterface;
-
-/**
- * This class is the result-handler interface for the Sensors
- * interface. Methods always run on the main thread.
- */
-class GonkSensorsResultHandler
- : public mozilla::ipc::DaemonSocketResultHandler
-{
-public:
-
- /**
- * Called if a command failed.
- *
- * @param aError The error code.
- */
- virtual void OnError(SensorsError aError);
-
- /**
- * The callback method for |GonkSensorsInterface::Connect|.
- */
- virtual void Connect();
-
- /**
- * The callback method for |GonkSensorsInterface::Connect|.
- */
- virtual void Disconnect();
-
-protected:
- virtual ~GonkSensorsResultHandler();
-};
-
-/**
- * This is the notification-handler interface. Implement this classes
- * methods to handle event and notifications from the sensors daemon.
- * All methods run on the main thread.
- */
-class GonkSensorsNotificationHandler
-{
-public:
-
- /**
- * This notification is called when the backend code fails
- * unexpectedly. Save state in the high-level code and restart
- * the driver.
- *
- * @param aCrash True is the sensors driver crashed.
- */
- virtual void BackendErrorNotification(bool aCrashed);
-
-protected:
- virtual ~GonkSensorsNotificationHandler();
-};
-
-/**
- * This class implements the public interface to the Sensors functionality
- * and driver. Use |GonkSensorsInterface::GetInstance| to retrieve an instance.
- * All methods run on the main thread.
- */
-class GonkSensorsInterface final
- : public mozilla::ipc::DaemonSocketConsumer
- , public mozilla::ipc::ListenSocketConsumer
-{
-public:
- /**
- * Returns an instance of the Sensors backend. This code can return
- * |nullptr| if no Sensors backend is available.
- *
- * @return An instance of |GonkSensorsInterface|.
- */
- static GonkSensorsInterface* GetInstance();
-
- /**
- * This method sets the notification handler for sensor notifications. Call
- * this method immediately after retreiving an instance of the class, or you
- * won't be able able to receive notifications. You may not free the handler
- * class while the Sensors backend is connected.
- *
- * @param aNotificationHandler An instance of a notification handler.
- */
- void SetNotificationHandler(
- GonkSensorsNotificationHandler* aNotificationHandler);
-
- /**
- * This method starts the Sensors backend and establishes ad connection
- * with Gecko. This is a multi-step process and errors are signalled by
- * |GonkSensorsNotificationHandler::BackendErrorNotification|. If you see
- * this notification before the connection has been established, it's
- * certainly best to assume the Sensors backend to be not evailable.
- *
- * @param aRes The result handler.
- */
- void Connect(GonkSensorsNotificationHandler* aNotificationHandler,
- GonkSensorsResultHandler* aRes);
-
- /**
- * This method disconnects Gecko from the Sensors backend and frees
- * the backend's resources. This will invalidate all interfaces and
- * state. Don't use any sensors functionality without reconnecting
- * first.
- *
- * @param aRes The result handler.
- */
- void Disconnect(GonkSensorsResultHandler* aRes);
-
- /**
- * Returns the Registry interface for the connected Sensors backend.
- *
- * @return An instance of the Sensors Registry interface.
- */
- GonkSensorsRegistryInterface* GetSensorsRegistryInterface();
-
- /**
- * Returns the Poll interface for the connected Sensors backend.
- *
- * @return An instance of the Sensors Poll interface.
- */
- GonkSensorsPollInterface* GetSensorsPollInterface();
-
-private:
- enum Channel {
- LISTEN_SOCKET,
- DATA_SOCKET
- };
-
- GonkSensorsInterface();
- ~GonkSensorsInterface();
-
- void DispatchError(GonkSensorsResultHandler* aRes, SensorsError aError);
- void DispatchError(GonkSensorsResultHandler* aRes, nsresult aRv);
-
- // Methods for |DaemonSocketConsumer| and |ListenSocketConsumer|
- //
-
- void OnConnectSuccess(int aIndex) override;
- void OnConnectError(int aIndex) override;
- void OnDisconnect(int aIndex) override;
-
- nsCString mListenSocketName;
- RefPtr<mozilla::ipc::ListenSocket> mListenSocket;
- RefPtr<mozilla::ipc::DaemonSocket> mDataSocket;
- UniquePtr<GonkSensorsProtocol> mProtocol;
-
- nsTArray<RefPtr<GonkSensorsResultHandler> > mResultHandlerQ;
-
- GonkSensorsNotificationHandler* mNotificationHandler;
-
- UniquePtr<GonkSensorsRegistryInterface> mRegistryInterface;
- UniquePtr<GonkSensorsPollInterface> mPollInterface;
-};
-
-} // namespace hal
-} // namespace mozilla
-
-#endif // hal_gonk_GonkSensorsInterface_h