[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebindings/perl/qtcore/src
From: Chris Michael Burel <chrisburel () gmail ! com>
Date: 2010-12-30 14:29:31
Message-ID: 20101230142931.B9FE0AC8AC () svn ! kde ! org
[Download RAW message or body]
SVN commit 1210304 by burel:
Add support for Qt::File::read and Qt::DataStream::readRawData.
M +2 -0 QtCore4.xs
M +37 -0 util.cpp
M +1 -0 util.h
--- trunk/KDE/kdebindings/perl/qtcore/src/QtCore4.xs #1210303:1210304
@@ -480,6 +480,8 @@
newXS(" Qt::Buffer::read", XS_qiodevice_read, __FILE__);
newXS(" Qt::TcpSocket::read", XS_qiodevice_read, __FILE__);
newXS(" Qt::TcpServer::read", XS_qiodevice_read, __FILE__);
+ newXS(" Qt::File::read", XS_qiodevice_read, __FILE__);
+ newXS(" Qt::DataStream::readRawData", XS_qdatastream_readrawdata, __FILE__);
newXS(" Qt::XmlStreamAttributes::EXISTS" , XS_QXmlStreamAttributes_exists, \
__FILE__);
newXS(" Qt::XmlStreamAttributes::FETCH" , XS_QXmlStreamAttributes_at, \
__FILE__);
--- trunk/KDE/kdebindings/perl/qtcore/src/util.cpp #1210303:1210304
@@ -1612,6 +1612,43 @@
}
}
+XS(XS_qdatastream_readrawdata) {
+ dXSARGS;
+ if (items != 3) {
+ croak( "%s", "Invalid argument list to Qt::DataStream::readRawData()" );
+ }
+
+ smokeperl_object *o = sv_obj_info(ST(0));
+
+ if (!o) {
+ croak( "Qt::DataStream::read() called on a non-Qt object" );
+ }
+ if(isDerivedFrom(o, "QDataStream") == -1) {
+ croak( "%s", "Qt::DataStream::read() called on a"
+ " non-DataStream object");
+ }
+
+ QDataStream * stream = (QDataStream *) o->smoke->cast(
+ o->ptr,
+ o->classId,
+ o->smoke->idClass("QDataStream").index
+ );
+
+ if ( !SvROK(ST(1)) ) {
+ croak( "%s", "Error: First argument to Qt::DataStream::readRawData(char*, \
uint) should be a scalar reference" ); + }
+ uint maxSize = SvIV( ST(2) );
+ char* data = new char[maxSize];
+ int bytesRead = stream->readRawData( data, maxSize );
+
+ sv_setsv( SvRV(ST(1)), newSVpvn( data, bytesRead ) );
+
+ // Return the QDataStream that's already at ST(0)
+ delete[] data;
+ ST(0) = sv_2mortal( newSViv( bytesRead ) );
+ XSRETURN(1);
+}
+
// TODO: Find a better place to put these.
Q_DECLARE_METATYPE(HV*)
Q_DECLARE_METATYPE(AV*)
--- trunk/KDE/kdebindings/perl/qtcore/src/util.h #1210303:1210304
@@ -93,6 +93,7 @@
XS(XS_qbytearray_data);
XS(XS_qiodevice_read);
+XS(XS_qdatastream_readrawdata);
XS(XS_qvariant_value);
XS(XS_qvariant_from_value);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic