A library for talking to Multi-Tech's Cellular SocketModem Devices.
Dependents: M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more
Socket/Transport.h@66:a170496ec5cf, 2013-12-23 (annotated)
- Committer:
- jengbrecht
- Date:
- Mon Dec 23 19:07:32 2013 +0000
- Revision:
- 66:a170496ec5cf
- Child:
- 113:7238f9b8db17
Added Transport concept to the Sockets folder and updated the rest of the classes to use an IPStack object from this class, instead of only cellular
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jengbrecht | 66:a170496ec5cf | 1 | #ifndef TRANSPORT_H |
jengbrecht | 66:a170496ec5cf | 2 | #define TRANSPORT_H |
jengbrecht | 66:a170496ec5cf | 3 | |
jengbrecht | 66:a170496ec5cf | 4 | #include "mbed.h" |
jengbrecht | 66:a170496ec5cf | 5 | #include "IPStack.h" |
jengbrecht | 66:a170496ec5cf | 6 | |
jengbrecht | 66:a170496ec5cf | 7 | using namespace mts; |
jengbrecht | 66:a170496ec5cf | 8 | |
jengbrecht | 66:a170496ec5cf | 9 | /** This class has been added to the standard mbed Socket library enabling people |
jengbrecht | 66:a170496ec5cf | 10 | * to use the Socket library interfaces for different transports that have |
jengbrecht | 66:a170496ec5cf | 11 | * their own internal IP-Stack. Use this class prior to instantiating any of the |
jengbrecht | 66:a170496ec5cf | 12 | * other classes in this folder to determine the underlying transport that will |
jengbrecht | 66:a170496ec5cf | 13 | * be used by them. It is important to know that the transport classes themsleves |
jengbrecht | 66:a170496ec5cf | 14 | * like Cellular or WiFi, must be properly initialized and connected before any |
jengbrecht | 66:a170496ec5cf | 15 | * of the Socket package classes can be used or even instantiated. |
jengbrecht | 66:a170496ec5cf | 16 | */ |
jengbrecht | 66:a170496ec5cf | 17 | class Transport |
jengbrecht | 66:a170496ec5cf | 18 | { |
jengbrecht | 66:a170496ec5cf | 19 | public: |
jengbrecht | 66:a170496ec5cf | 20 | ///An enumeration that holds the supported Transport Types. |
jengbrecht | 66:a170496ec5cf | 21 | enum TransportType { |
jengbrecht | 66:a170496ec5cf | 22 | CELLULAR, WIFI |
jengbrecht | 66:a170496ec5cf | 23 | }; |
jengbrecht | 66:a170496ec5cf | 24 | |
jengbrecht | 66:a170496ec5cf | 25 | /** This method allows you to set the transport to be used when creating other |
jengbrecht | 66:a170496ec5cf | 26 | * objects from the Socket folder like TCPSocketConnection and UDPSocket. |
jengbrecht | 66:a170496ec5cf | 27 | * |
jengbrecht | 66:a170496ec5cf | 28 | * @param type the type of underlying transport to be used. |
jengbrecht | 66:a170496ec5cf | 29 | */ |
jengbrecht | 66:a170496ec5cf | 30 | static void setTransport(TransportType type); |
jengbrecht | 66:a170496ec5cf | 31 | |
jengbrecht | 66:a170496ec5cf | 32 | /** This method is used within the Socket class to get the appropraite transport |
jengbrecht | 66:a170496ec5cf | 33 | * as an IPStack object. In general you do not need to call this directly, but |
jengbrecht | 66:a170496ec5cf | 34 | * simply use the other classes in this folder. |
jengbrecht | 66:a170496ec5cf | 35 | * |
jengbrecht | 66:a170496ec5cf | 36 | * @returns a pointer to an object that implements IPStack. |
jengbrecht | 66:a170496ec5cf | 37 | */ |
jengbrecht | 66:a170496ec5cf | 38 | static IPStack* getInstance(); |
jengbrecht | 66:a170496ec5cf | 39 | |
jengbrecht | 66:a170496ec5cf | 40 | private: |
jengbrecht | 66:a170496ec5cf | 41 | static Transport::TransportType _type; // Member variable that holds the desired transport |
jengbrecht | 66:a170496ec5cf | 42 | }; |
jengbrecht | 66:a170496ec5cf | 43 | |
jengbrecht | 66:a170496ec5cf | 44 | #endif /* TRANSPORT_H */ |