Changeset 96 in pacpusframework for branches/2.0-beta1/include/Pacpus/kernel/inputOutputBase.h
- Timestamp:
- 05/23/13 12:16:31 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0-beta1/include/Pacpus/kernel/inputOutputBase.h
r95 r96 4 4 #include <Pacpus/kernel/pacpus.h> 5 5 #include <Pacpus/kernel/ConnectionBase.h> 6 #include <Pacpus/kernel/PacpusEvent.h> 6 7 8 #include <QApplication> 7 9 #include <typeinfo> 8 #include <QEvent>9 10 #include <QList> 10 11 #include <QStringList> … … 24 25 QString getName() {return _name;} 25 26 virtual QString getDataType() = 0; 26 //ComponentBase * getComponent() {return _component;} 27 ComponentBase * getComponent() {return _component;} 28 29 void addConnection(ConnectionBase connection) { _connection.append(connection);} 30 bool removeConnection(ConnectionBase connection) { return _connection.removeOne(connection);} 27 31 28 32 protected: 29 33 QString _name; 30 34 ComponentBase * _component; 35 QList<ConnectionBase> _connection; 31 36 }; 32 37 … … 34 39 { 35 40 Q_OBJECT 41 protected: 42 InputInterfaceBase(QString name, ComponentBase * component, QObject * parent = 0):AbstractInterface(name,component,parent) {} 43 36 44 public: 37 InputInterfaceBase(QString name, ComponentBase * component, QObject * parent = 0):AbstractInterface(name,component,parent) {} 45 //InputInterfaceBase(QString name, ComponentBase * component,int a, QObject * parent = 0):AbstractInterface(name,component,parent) {} // TODO add ctor with function pointer 46 38 47 virtual ~InputInterfaceBase(){} 39 48 40 virtual void customEvent(QEvent* e) = 0; 49 virtual void customEvent(QEvent* e) { 50 51 //if(event->type()) 52 //TODO get event Type anf call callback function 53 54 QByteArray buf; 55 QDataStream out(&buf,QIODevice::WriteOnly); 56 out << e; 57 // Callback QByteArray 58 } 59 60 virtual PacpusEvent getEventTemplate() {return PacpusEvent(GENERIC_EVENT);} // TODO check ?? 41 61 42 62 }; … … 45 65 { 46 66 Q_OBJECT 67 47 68 public: 48 69 OutputInterfaceBase(QString name, ComponentBase * component, QObject * parent = 0):AbstractInterface(name,component,parent) {} 70 49 71 virtual ~OutputInterfaceBase(){} 50 51 void addConnection(ConnectionBase connection) { _connection.append(connection);}52 bool removeConnection(ConnectionBase connection) { return _connection.removeOne(connection);}53 72 54 73 QStringList getInputConnectedList() { 55 74 QStringList list; 56 75 for(QList<ConnectionBase>::iterator it = _connection.begin(); it!=_connection.end(); ++it) 57 list.append(it->getIn putInterface()->getName());76 list.append(it->getInterface()->getName()); 58 77 return list; 59 78 } 60 79 61 protected: 62 QList<ConnectionBase> _connection; 80 void send(/*const*/ QByteArray & data) { 81 82 // TODo getEvent 83 //PacpusEvent& event = _connection.at(0).getInterface()-> 84 QDataStream in(&data,QIODevice::ReadOnly); 85 //in >> event; 86 87 //for(QList<ConnectionBase>::iterator it = _connection.begin(); it!=_connection.end(); ++it) 88 // QApplication::postEvent(it->getInterface(),&event,it->getPriority()); 89 90 91 } 63 92 64 93 }; 94 95 static bool connectInterface(OutputInterfaceBase* out, InputInterfaceBase * in, int priority) 96 { 97 if(out->getDataType() == in->getDataType() || out->getDataType() == QString(typeid(QByteArray).name()) || in->getDataType() == QString(typeid(QByteArray).name())) { 98 99 // Add connection 100 out->addConnection(ConnectionBase(in,priority)); // TODO make connect function 101 in->addConnection(ConnectionBase(out,priority)); 102 //LOG_INFO("connection : Output " << out->getSignature() << " => Input " << in->getSignature()); 103 return true; 104 } else { 105 //LOG_WARN("connecting " << out->getSignature() << ":" << out->getDataType() << " to " << in->getSignature() << ":" << in->getDataType() << " failled : DataType incompatible " << QString(typeid(QByteArray).name())); 106 return false; 107 } 108 } 65 109 66 110 } // namespace pacpus
Note:
See TracChangeset
for help on using the changeset viewer.