Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers BasicDataType.h Source File

BasicDataType.h

00001 /*******************************************
00002  * BasicDataType.h
00003  * @author Yuki Suga
00004  * @copyright Yuki Suga (ysuga.net) Nov, 10th, 2010.
00005  * @license LGPLv3
00006  *****************************************/
00007 
00008 #ifndef BASIC_DATA_TYPE_HEADER_INCLUDED
00009 #define BASIC_DATA_TYPE_HEADER_INCLUDED
00010 
00011 #include "SequenceDataType.h"
00012 #include "SequenceOctet.h"
00013 #include "SequenceChar.h"
00014 #include "SequenceBoolean.h"
00015 #include "SequenceLong.h"
00016 #include "SequenceDouble.h"
00017 #include "SequenceFloat.h"
00018 /*
00019 typedef struct __Time__ {
00020   long sec;
00021   long usec;
00022 }Time;
00023 */
00024 
00025 class TimedData {
00026 public:
00027     virtual void* GetBuffer() {
00028         return 0;
00029     }
00030 };
00031 
00032 class TimedBoolean : public TimedData {
00033 public:
00034     char data;
00035     virtual void* GetBuffer() {
00036         return &data;
00037     }
00038     const static char typecode = 'b';
00039 };
00040 
00041 class TimedChar : public TimedData {
00042 public:
00043     char data;
00044     virtual void* GetBuffer() {
00045         return &data;
00046     }
00047     const static char typecode = 'c';
00048 };
00049 
00050 class TimedOctet : public TimedData {
00051 public:
00052     char data;
00053     virtual void* GetBuffer() {
00054         return &data;
00055     }
00056     const static char typecode = 'o';
00057 };
00058 
00059 class TimedLong : public TimedData {
00060     //  Time timestamp;
00061 public:
00062     long data;
00063     virtual void* GetBuffer() {
00064         return &data;
00065     }
00066     const static char typecode = 'l';
00067 };
00068 
00069 class TimedDouble : public TimedData {
00070 //  Time timestamp;
00071 public:
00072     //double data;
00073     float data;
00074     virtual void* GetBuffer() {
00075         return &data;
00076     }
00077     const static char typecode = 'd';
00078 };
00079 
00080 class TimedFloat : public TimedData {
00081     //  unsigned char length;
00082 public:
00083     float data;
00084     virtual void* GetBuffer() {
00085         return &data;
00086     }
00087     const static char typecode = 'f';
00088 };
00089 
00090 class TimedDataSeq {
00091 public:
00092     virtual SequenceDataType* GetBuffer() {
00093         return 0;
00094     }
00095 };
00096 
00097 class TimedOctetSeq : public TimedDataSeq {
00098     //  Time timestamp;
00099     //  long length;
00100 public:
00101     SequenceOctet data;
00102     virtual SequenceDataType* GetBuffer() {
00103         return &data;
00104     }
00105     const static char typecode = 'O';
00106 };
00107 
00108 class TimedCharSeq : public TimedDataSeq {
00109     //  Time timestamp;
00110     //  long length;
00111 public:
00112     SequenceChar data;
00113     virtual SequenceDataType* GetBuffer() {
00114         return &data;
00115     }
00116     const static char typecode = 'C';
00117 };
00118 
00119 class TimedBooleanSeq : public TimedDataSeq {
00120     //  Time timestamp;
00121     //  long length;
00122 public:
00123     SequenceBoolean data;
00124     virtual SequenceDataType* GetBuffer() {
00125         return &data;
00126     }
00127     const static char typecode = 'B';
00128 };
00129 
00130 class TimedLongSeq : public TimedDataSeq {
00131     //  Time timestamp;
00132     //  long length;
00133 public:
00134     SequenceLong data;
00135     virtual SequenceDataType* GetBuffer() {
00136         return &data;
00137     }
00138     const static char typecode = 'L';
00139 };
00140 
00141 class TimedFloatSeq : public TimedDataSeq {
00142     //  Time timestamp;
00143     //  long length;
00144     //  float* data;
00145 public:
00146     SequenceFloat data;
00147     virtual SequenceDataType* GetBuffer() {
00148         return &data;
00149     }
00150     const static char typecode = 'F';
00151 };
00152 
00153 struct TimedDoubleSeq : public TimedDataSeq {
00154 //  Time timestamp;
00155     //  long length;
00156     //  double* data;
00157 public:
00158     SequenceDouble data;
00159     virtual SequenceDataType* GetBuffer() {
00160         return &data;
00161     }
00162     const static char typecode = 'D';
00163 };
00164 
00165 
00166 #endif