Dependencies:   mbed

Committer:
nucho
Date:
Fri Jul 29 11:20:55 2011 +0000
Revision:
0:a70ea71286b6
Child:
1:ab3c75cf5906

        

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 0:a70ea71286b6 31 case 'b':
nucho 0:a70ea71286b6 32 case 'B':
nucho 0:a70ea71286b6 33 case 'o':
nucho 0:a70ea71286b6 34 case 'O':
nucho 0:a70ea71286b6 35 case 'c':
nucho 0:a70ea71286b6 36 case 'C':
nucho 0:a70ea71286b6 37 return 0;
nucho 0:a70ea71286b6 38 default:
nucho 0:a70ea71286b6 39 return 1;
nucho 0:a70ea71286b6 40 }
nucho 0:a70ea71286b6 41 }
nucho 0:a70ea71286b6 42
nucho 0:a70ea71286b6 43 int GetLength() {
nucho 0:a70ea71286b6 44 if(!isSequenceType()) {
nucho 0:a70ea71286b6 45 return 1;
nucho 0:a70ea71286b6 46 } else {
nucho 0:a70ea71286b6 47 return ((TimedDataSeq*)m_pData)->GetBuffer()->length();
nucho 0:a70ea71286b6 48 }
nucho 0:a70ea71286b6 49 }
nucho 0:a70ea71286b6 50
nucho 0:a70ea71286b6 51 void SetLength(int len) {
nucho 0:a70ea71286b6 52 if(!isSequenceType()) {
nucho 0:a70ea71286b6 53 return;
nucho 0:a70ea71286b6 54 }
nucho 0:a70ea71286b6 55 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 56 seqData->length(len);
nucho 0:a70ea71286b6 57 }
nucho 0:a70ea71286b6 58
nucho 0:a70ea71286b6 59 void* GetBuffer() {
nucho 0:a70ea71286b6 60 void* pBuffer;
nucho 0:a70ea71286b6 61 if(!isSequenceType()) {
nucho 0:a70ea71286b6 62 // if (len != 1) return 0;// -INVALID_PACKET_DATASIZE;
nucho 0:a70ea71286b6 63 pBuffer = ((TimedData*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 64 } else {
nucho 0:a70ea71286b6 65 SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
nucho 0:a70ea71286b6 66 pBuffer = seqData->GetBuffer();
nucho 0:a70ea71286b6 67 }
nucho 0:a70ea71286b6 68 return pBuffer;
nucho 0:a70ea71286b6 69 }
nucho 0:a70ea71286b6 70
nucho 0:a70ea71286b6 71 };
nucho 0:a70ea71286b6 72
nucho 0:a70ea71286b6 73 #endif