/* dtkComposerTransmitterVariant.h --- * * Author: Thibaud Kloczko, Inria. * Created: Fri Mar 2 16:19:20 2012 (+0100) */ /* Commentary: * */ /* Change log: * */ #ifndef DTKCOMPOSERTRANSMITTERVARIANT_H #define DTKCOMPOSERTRANSMITTERVARIANT_H #include #include "dtkComposerTransmitter.h" #include template class dtkContainerVector; namespace dtkDeprecated { template class dtkMatrix; } // ///////////////////////////////////////////////////////////////// // dtkComposerTransmitterVariant declaration // ///////////////////////////////////////////////////////////////// class dtkComposerTransmitterVariantPrivate; class DTKCOMPOSERSUPPORT_EXPORT dtkComposerTransmitterVariant : public dtkComposerTransmitter { public: dtkComposerTransmitterVariant(dtkComposerNode *parent = 0); ~dtkComposerTransmitterVariant(void); public: void clearData(void); public: template inline void setData(T *data); template inline void setData(const T *data); template inline void setData(dtkContainerVector *data); template inline void setData(const dtkContainerVector *data); public: void setData(const QVariant& data); void setData(dtkAbstractContainerWrapper *data); public: void setDataFrom(dtkComposerTransmitterVariant *source); void setDataFrom(QByteArray& array, dtkAbstractObject *object = NULL); QVariant setVariantFrom(QByteArray& array, bool self = true, dtkAbstractObject *object = NULL); public: template T *data(void); template T *constData(void); public: QByteArray dataToByteArray(void); QByteArray variantToByteArray(QVariant data, bool self); public: QVariant& variant(void); dtkAbstractContainerWrapper *containerFromEmitter(void); dtkAbstractContainerWrapper *container(void); const dtkAbstractContainerWrapper *constContainer(void); public: dtkAbstractObject *object(void); public: dtkDeprecated::dtkMatrix *matrix(void); public: int dataType(void); QString dataIdentifier(void); QString dataDescription(void); public: QList allDataType(void); QStringList allDataIdentifier(void); QStringList allDataDescription(void); public: void setActive(bool active); public: void activateEmitter(dtkComposerTransmitter *emitter); void activateEmitter(dtkComposerTransmitterVariant *emitter); public: void setReady(bool); public: bool enableCopy(void); void reset(void); public: bool isEmpty(void) const; public: void setTwin(dtkComposerTransmitterVariant *twin); dtkComposerTransmitterVariant *twin(void); void setTwinned(bool twinned); public: Kind kind(void) const; QString kindName(void) const; public: void setDataTypes(const QList& data_types); QList dataTypes(void); public: bool connect(dtkComposerTransmitter *transmitter); bool disconnect(dtkComposerTransmitter *transmitter); public: LinkMap leftLinks(dtkComposerTransmitter *transmitter, dtkComposerTransmitterLinkList list); LinkMap rightLinks(dtkComposerTransmitter *transmitter, dtkComposerTransmitterLinkList list); protected: dtkComposerTransmitterVariantPrivate *e; }; #include "dtkComposerTransmitterVariant.tpp" #endif