RTno is communicating library and framework which allows you to make your embedded device capable of communicating with RT-middleware world. RT-middleware is a platform software to realize Robotic system. In RTM, robots are developed by constructing robotics technologies\' elements (components) named RT-component. Therefore, the RTno helps you to create your own RT-component with your mbed and arduino. To know how to use your RTno device, visit here: http://ysuga.net/robot_e/rtm_e/rtc_e/1065?lang=en To know about RT-middleware and RT-component, visit http://www.openrtm.org

Dependencies:   EthernetNetIf

Dependents:   RTnoV3_LED RTnoV3_Template RTnoV3_ADC RTnoV3_Timer ... more

Sequence.h

Committer:
ysuga
Date:
2012-02-09
Revision:
0:9fac71a0bff3

File content as of revision 0:9fac71a0bff3:

#ifndef SEQUENCE_HEADER_INCLUDED
#define SEQUENCE_HEADER_INCLUDED

#include <stdint.h>
#include <stdlib.h>

class SequenceBase {
 protected:
    uint8_t m_length;

 public:
  virtual uint8_t length() {
    return m_length;
  }
  
  virtual void length(uint8_t len) {};

  virtual void* getData() = 0;
};


template<typename T>
class Sequence : public SequenceBase {
  T *m_ptr;

 public:
  Sequence() {m_ptr = 0;}
  virtual void length(uint8_t len) {
    m_length = len;
    free((void*)m_ptr);
    m_ptr = (T*)malloc(len * sizeof(T));
  }

  virtual uint8_t length() {
    return SequenceBase::length();
  }
  T& operator[](uint8_t index) {
    return m_ptr[index];
  }

  virtual void* getData() { return m_ptr; }
};


#endif //#ifndef SEQUENCE_HEADER_INCLUDED