Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PortBase.h Source File

PortBase.h

00001 /*******************************************
00002  * PortBase.h
00003  * @author Yuki Suga
00004  * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010.
00005  * @license LGPLv3
00006  *****************************************/
00007 
00008 #ifndef PORT_BASE_HEADER_INCLUDED
00009 #define PORT_BASE_HEADER_INCLUDED
00010 
00011 #include "BasicDataType.h"
00012 
00013 class PortBase {
00014  private:
00015 
00016     
00017  protected:
00018   void* m_pData;
00019   char* m_pName;
00020   char m_TypeCode;
00021  public:
00022   PortBase(char* name);
00023   ~PortBase();
00024 
00025  public:
00026   char* GetName() {return m_pName;}
00027   char GetTypeCode() {return m_TypeCode;}
00028 
00029   int isSequenceType() {
00030     switch(m_TypeCode) {
00031     /*
00032     case 'b':
00033     case 'B':
00034     case 'o':
00035     case 'O':
00036     case 'c':
00037     case 'C':
00038     */
00039     case 'b':
00040     case 'o':
00041     case 'c':
00042     case 'l':
00043     case 'f':
00044     case 'd':
00045       return 0;
00046     default:
00047       return 1;
00048     }
00049   }
00050 
00051   int GetLength() {
00052     if(!isSequenceType()) {
00053       return  1;
00054     } else {
00055       return ((TimedDataSeq*)m_pData)->GetBuffer()->length();
00056     }
00057   }
00058 
00059   void SetLength(int len) {
00060     if(!isSequenceType()) {
00061       return;
00062     }
00063     SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
00064     seqData->length(len);
00065   }
00066 
00067   void* GetBuffer() {
00068     void* pBuffer;
00069       if(!isSequenceType()) {
00070       //      if (len != 1) return 0;// -INVALID_PACKET_DATASIZE;
00071       pBuffer = ((TimedData*)m_pData)->GetBuffer();
00072     } else {
00073       SequenceDataType *seqData = ((TimedDataSeq*)m_pData)->GetBuffer();
00074       pBuffer = seqData->GetBuffer();
00075     }
00076     return pBuffer;
00077   }
00078 
00079 };
00080 
00081 #endif