Dependencies:   mbed

Committer:
nucho
Date:
Mon Aug 01 14:45:42 2011 +0000
Revision:
1:ab3c75cf5906
Parent:
0:a70ea71286b6

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:a70ea71286b6 1 /*******************************************
nucho 0:a70ea71286b6 2 * PortBase.h
nucho 0:a70ea71286b6 3 * @author Yuki Suga
nucho 0:a70ea71286b6 4 * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010.
nucho 0:a70ea71286b6 5 * @license LGPLv3
nucho 0:a70ea71286b6 6 *****************************************/
nucho 0:a70ea71286b6 7
nucho 0:a70ea71286b6 8 #ifndef PORT_BASE_HEADER_INCLUDED
nucho 0:a70ea71286b6 9 #define PORT_BASE_HEADER_INCLUDED
nucho 0:a70ea71286b6 10
nucho 0:a70ea71286b6 11 #include "BasicDataType.h"
nucho 0:a70ea71286b6 12
nucho 0:a70ea71286b6 13 class PortBase {
nucho 0:a70ea71286b6 14 private:
nucho 0:a70ea71286b6 15
nucho 0:a70ea71286b6 16
nucho 0:a70ea71286b6 17 protected:
nucho 0:a70ea71286b6 18 void* m_pData;
nucho 0:a70ea71286b6 19 char* m_pName;
nucho 0:a70ea71286b6 20 char m_TypeCode;
nucho 0:a70ea71286b6 21 public:
nucho 0:a70ea71286b6 22 PortBase(char* name);
nucho 0:a70ea71286b6 23 ~PortBase();
nucho 0:a70ea71286b6 24
nucho 0:a70ea71286b6 25 public:
nucho 0:a70ea71286b6 26 char* GetName() {return m_pName;}
nucho 0:a70ea71286b6 27 char GetTypeCode() {return m_TypeCode;}
nucho 0:a70ea71286b6 28
nucho 0:a70ea71286b6 29 int isSequenceType() {
nucho 0:a70ea71286b6 30 switch(m_TypeCode) {
nucho 1:ab3c75cf5906 31 /*
nucho 0:a70ea71286b6 32 case 'b':
nucho 0:a70ea71286b6 33 case 'B':
nucho 0:a70ea71286b6 34 case 'o':
nucho 0:a70ea71286b6 35 case 'O':
nucho 0:a70ea71286b6 36 case 'c':
nucho 0:a70ea71286b6 37 case 'C':
nucho 1:ab3c75cf5906 38 */
nucho 1:ab3c75cf5906 39 case 'b':
nucho 1:ab3c75cf5906 40 case 'o':
nucho 1:ab3c75cf5906 41 case 'c':
nucho 1:ab3c75cf5906 42 case 'l':
nucho 1:ab3c75cf5906 43 case 'f':
nucho 1:ab3c75cf5906 44 case 'd':
nucho 0:a70ea71286b6 45 return 0;
nucho 0:a70ea71286b6 46 default:
nucho 0:a70ea71286b6 47 return 1;
nucho 0:a70ea71286b6 48 }
nucho 0:a70ea71286b6 49 }
nucho 0:a70ea71286b6 50
nucho 0:a70ea71286b6 51 int GetLength() {
nucho 0:a70ea71286b6 52 if(!isSequenceType()) {
nucho 1:ab3c75cf5906 53 return 1;
nucho 0:a70ea71286b6 54 } else {
nucho 0:a70ea71286b6 55 return ((TimedDataSeq*)m_pData)->GetBuffer()->length();
nucho 0:a70ea71286b6 56 }
nucho 0:a70ea71286b6 57 }
nucho 0:a70ea71286b6 58
nucho 0:a70ea71286b6 59 void SetLength(int len) {
nucho 0:a70ea71286b6 60 if(!isSequenceType()) {
nucho 0:a70ea71286b6 61 return;
nucho 0:a70ea71286b6 62 }
nucho 0:a70ea71286b6 63 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 64 seqData->length(len);
nucho 0:a70ea71286b6 65 }
nucho 0:a70ea71286b6 66
nucho 0:a70ea71286b6 67 void* GetBuffer() {
nucho 0:a70ea71286b6 68 void* pBuffer;
nucho 0:a70ea71286b6 69 if(!isSequenceType()) {
nucho 0:a70ea71286b6 70 // if (len != 1) return 0;// -INVALID_PACKET_DATASIZE;
nucho 0:a70ea71286b6 71 pBuffer = ((TimedData*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 72 } else {
nucho 0:a70ea71286b6 73 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 74 pBuffer = seqData->GetBuffer();
nucho 0:a70ea71286b6 75 }
nucho 0:a70ea71286b6 76 return pBuffer;
nucho 0:a70ea71286b6 77 }
nucho 0:a70ea71286b6 78
nucho 0:a70ea71286b6 79 };
nucho 0:a70ea71286b6 80
nucho 0:a70ea71286b6 81 #endif