APM:Libraries
AP_HAL_Namespace.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "string.h"
4 #include "utility/functor.h"
5 
6 namespace AP_HAL {
7 
8  /* Toplevel pure virtual class Hal.*/
9  class HAL;
10 
11  /* Toplevel class names for drivers: */
12  class UARTDriver;
13  class I2CDevice;
14  class I2CDeviceManager;
15  class Device;
16 
17  class SPIDevice;
18  class SPIDeviceDriver;
19  class SPIDeviceManager;
20 
21  class AnalogSource;
22  class AnalogIn;
23  class Storage;
24  class DigitalSource;
25  class GPIO;
26  class RCInput;
27  class RCOutput;
28  class Scheduler;
29  class Semaphore;
30  class OpticalFlow;
31 
32  class CANManager;
33  class CAN;
34 
35  class Util;
36 
37  /* Utility Classes */
38  class Print;
39  class Stream;
40  class BetterStream;
41 
42  /* Typdefs for function pointers (Procedure, Member Procedure)
43 
44  For member functions we use the FastDelegate delegates class
45  which allows us to encapculate a member function as a type
46  */
47  typedef void(*Proc)(void);
48  FUNCTOR_TYPEDEF(MemberProc, void);
49 
55  // Devices using AP_HAL::SPIDevice abstraction
57  };
58 
59  // Must be implemented by the concrete HALs.
60  const HAL& get_HAL();
61 }
void(* Proc)(void)
FUNCTOR_TYPEDEF(MemberProc, void)
const HAL & get_HAL()