PHS module SMA-01 library. see: https://developer.mbed.org/users/phsfan/notebook/abitusbmodem/

Dependencies:   Socket lwip-sys lwip

Dependents:   AbitUSBModem_HTTPTest AbitUSBModem_MQTTTest AbitUSBModem_WebsocketTest AbitUSBModem_SMSTest

Fork of VodafoneUSBModem by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers IOStream.h Source File

IOStream.h

00001 /* IOStream.h */
00002 /* Copyright (C) 2012 mbed.org, MIT License
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
00005  * and associated documentation files (the "Software"), to deal in the Software without restriction,
00006  * including without limitation the rights to use, copy, modify, merge, publish, distribute,
00007  * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
00008  * furnished to do so, subject to the following conditions:
00009  *
00010  * The above copyright notice and this permission notice shall be included in all copies or
00011  * substantial portions of the Software.
00012  *
00013  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
00014  * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
00015  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
00016  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00017  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00018  */
00019 
00020 #ifndef IOSTREAM_H_
00021 #define IOSTREAM_H_
00022 
00023 #include "fwk.h"
00024 
00025 #include "rtos.h"
00026 
00027 class IStream
00028 {
00029 public:
00030   //IStream();
00031   //virtual ~IStream();
00032 
00033     //0 for non-blocking (returns immediately), osWaitForever for infinite blocking
00034     virtual int read(uint8_t* buf, size_t* pLength, size_t maxLength, uint32_t timeout=osWaitForever) = 0;
00035     virtual size_t available() = 0;
00036     virtual int waitAvailable(uint32_t timeout=osWaitForever) = 0; //Wait for data to be available
00037     virtual int abortRead() = 0; //Abort current reading (or waiting) operation
00038 };
00039 
00040 class OStream
00041 {
00042 public:
00043   //OStream();
00044   //virtual ~OStream();
00045 
00046     //0 for non-blocking (returns immediately), osWaitForever for infinite blocking
00047     virtual int write(uint8_t* buf, size_t length, uint32_t timeout=osWaitForever) = 0;
00048     virtual size_t space() = 0;
00049     virtual int waitSpace(uint32_t timeout=osWaitForever) = 0; //Wait for space to be available
00050     virtual int abortWrite() = 0; //Abort current writing (or waiting) operation
00051 };
00052 
00053 class IOStream : public IStream, public OStream
00054 {
00055 public:
00056   //IOStream();
00057   //virtual ~IOStream();
00058 };
00059 
00060 
00061 #endif /* IOSTREAM_H_ */