Dependencies:   mbed

Committer:
nucho
Date:
Mon Aug 01 14:45:58 2011 +0000
Revision:
1:b96a6ff9bb6f
Parent:
0:b14546a3cfab

        

Who changed what in which revision?

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