Dependencies:   mbed

Committer:
nucho
Date:
Fri Jul 29 11:23:06 2011 +0000
Revision:
0:b14546a3cfab
Child:
1:b96a6ff9bb6f

        

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