Changeset 182 in pacpusframework for trunk/src/PacpusLib/InputOutputBase.cpp
- Timestamp:
- Oct 23, 2013, 9:09:51 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/PacpusLib/InputOutputBase.cpp
r148 r182 1 #include <Pacpus/kernel/InputOutputBase.h> 2 1 3 #include <Pacpus/kernel/ComponentBase.h> 4 #include <Pacpus/kernel/ConnectionBase.h> 5 #define CONNECT_INTERFACE_EXPORTS 2 6 #include <Pacpus/kernel/InputOutputInterface.h> 7 #undef CONNECT_INTERFACE_EXPORTS 3 8 #include <Pacpus/kernel/Log.h> 4 9 … … 7 12 DECLARE_STATIC_LOGGER("pacpus.core.InputOutputInterface"); 8 13 9 QString AbstractInterface::getSignature() 14 //////////////////////////////////////////////////////////////////////////////// 15 16 AbstractInterface::AbstractInterface(QString name, ComponentBase * component, QObject * parent) 17 : m_name(name) 18 , m_component(component) 19 , QObject(parent) 10 20 { 11 return component()->getName() + '.' + name();21 LOG_DEBUG("constructing abstract connection '" << getName() << "'"); 12 22 } 23 24 AbstractInterface::~AbstractInterface() 25 {} 26 27 QString AbstractInterface::getSignature() const 28 { 29 return getComponent()->getName() + '.' + getName(); 30 } 31 32 QString AbstractInterface::getName() const 33 { 34 return m_name; 35 } 36 37 QList<ConnectionBase> & AbstractInterface::connections() 38 { 39 return m_connections; 40 } 41 42 const QList<ConnectionBase> & AbstractInterface::getConnections() const 43 { 44 return m_connections; 45 } 46 47 ComponentBase * AbstractInterface::component() 48 { 49 return m_component; 50 } 51 52 const ComponentBase * AbstractInterface::getComponent() const 53 { 54 return m_component; 55 } 56 57 void AbstractInterface::addConnection(ConnectionBase connection) 58 { 59 m_connections.append(connection); 60 } 61 62 bool AbstractInterface::removeConnection(ConnectionBase connection) 63 { 64 return m_connections.removeOne(connection); 65 } 66 67 bool AbstractInterface::hasConnection() 68 { 69 return m_connections.size() > 0; 70 } 71 72 //////////////////////////////////////////////////////////////////////////////// 73 74 InputInterfaceBase::InputInterfaceBase(QString name, ComponentBase * component, QObject * parent) 75 : AbstractInterface(name, component, parent) 76 {} 77 78 InputInterfaceBase::~InputInterfaceBase() 79 {} 80 81 // TODO for serialization prupose (not yet implemented !!!) 82 void InputInterfaceBase::customEvent(QEvent* e) 83 { 84 //if (event->type()) 85 //TODO get event Type anf call callback function 86 87 PacpusEvent * event = dynamic_cast<PacpusEvent *>(e); 88 QByteArray buf; 89 QDataStream out(&buf, QIODevice::WriteOnly); 90 event->streamOut(out); 91 // Callback QByteArray 92 } 93 94 InputInterfaceBase::ReadingMode & InputInterfaceBase::readingMode() 95 { 96 return m_readingMode; 97 } 98 99 const InputInterfaceBase::ReadingMode & InputInterfaceBase::readingMode() const 100 { 101 return m_readingMode; 102 } 103 104 void InputInterfaceBase::setReadingMode(ReadingMode mode) 105 { 106 m_readingMode = mode; 107 } 108 109 PacpusEvent * InputInterfaceBase::getEventTemplate() 110 { 111 // TODO: check 112 return new PacpusEvent(GENERIC_EVENT); 113 } 114 115 //////////////////////////////////////////////////////////////////////////////// 116 117 QStringList OutputInterfaceBase::getInputConnectedList() 118 { 119 QStringList list; 120 for (QList<ConnectionBase>::iterator it = connections().begin(); it != connections().end(); ++it) { 121 list.append(it->getInterface()->getName()); 122 } 123 return list; 124 } 125 126 // TODO for serialization prupose (not yet implemented !!!) 127 void OutputInterfaceBase::send(/*const*/ QByteArray & data) 128 { 129 // TODO check at least one Typed connection 130 131 for (QList<ConnectionBase>::iterator it = connections().begin(); it!=connections().end(); ++it) { 132 QDataStream in(&data,QIODevice::ReadOnly); 133 PacpusEvent * event = dynamic_cast<InputInterfaceBase*>(connections().at(0).getInterface())->getEventTemplate(); 134 event->streamIn(in); 135 QApplication::postEvent(it->getInterface(),event,it->getPriority()); 136 } 137 }
Note:
See TracChangeset
for help on using the changeset viewer.