void GFFStruct::load() const { if (!_fields.empty()) return; Common::SeekableReadStream &gff = _parent->getStream(); // Read the field(s) if (_fieldCount == 1) readField (gff, _fieldIndex); else if (_fieldCount > 1) readFields(gff, _fieldIndex, _fieldCount); }
void GFF3Struct::load(uint32 offset) { Common::SeekableReadStream &data = _parent->getStream(offset); _id = data.readUint32LE(); _fieldIndex = data.readUint32LE(); _fieldCount = data.readUint32LE(); // Read the field(s) if (_fieldCount == 1) readField (data, _fieldIndex); else if (_fieldCount > 1) readFields(data, _fieldIndex, _fieldCount); }
void Q3DataBrowser::postNav(bool primeUpd) { if (primeUpd) { QSqlRecord* buf = d->frm.record(); Q3SqlCursor* cur = d->cur.cursor(); if (!buf || !cur) return; currentChanged(cur); cur->primeUpdate(); emit primeUpdate(buf); readFields(); } updateBoundary(); }
void Q3DataBrowser::insert() { QSqlRecord* buf = d->frm.record(); Q3SqlCursor* cur = d->cur.cursor(); if (!buf || !cur) return; bool doIns = true; QSql::Confirm conf = QSql::Yes; switch (d->dat.mode()) { case QSql::Insert: if (autoEdit()) { if (confirmInsert()) conf = confirmEdit(QSql::Insert); switch (conf) { case QSql::Yes: insertCurrent(); break; case QSql::No: break; case QSql::Cancel: doIns = false; break; } } break; default: if (autoEdit() && currentEdited()) { if (confirmUpdate()) conf = confirmEdit(QSql::Update); switch (conf) { case QSql::Yes: updateCurrent(); break; case QSql::No: break; case QSql::Cancel: doIns = false; break; } } break; } if (doIns) { d->dat.setMode(QSql::Insert); sqlCursor()->primeInsert(); emit primeInsert(d->frm.record()); readFields(); } }
void OSBNameElement::read(const std::string &typeName) { OSG_OSB_LOG(("OSBNameElement::read [%s]\n", typeName.c_str())); BinaryReadHandler *rh = editRoot()->getReadHandler(); UInt8 fcPtrType; UInt16 version; rh->getValue(fcPtrType); rh->getValue(version ); setContainer(NameUnrecPtr(Name::create())); readFields("", ""); }
bool QSqlForm::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: readField((QWidget*)static_QUType_ptr.get(_o+1)); break; case 1: writeField((QWidget*)static_QUType_ptr.get(_o+1)); break; case 2: readFields(); break; case 3: writeFields(); break; case 4: clear(); break; case 5: clearValues(); break; case 6: clearValues((bool)static_QUType_bool.get(_o+1)); break; default: return QObject::qt_invoke( _id, _o ); } return TRUE; }
int Q3DataView::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: refresh((*reinterpret_cast< QSqlRecord*(*)>(_a[1]))); break; case 1: readFields(); break; case 2: writeFields(); break; case 3: clearValues(); break; } _id -= 4; } return _id; }
//------------------------------------------------------------------------------ void SdoDialog::startRead() { eObdType obdType; int size = 0; tOplkError ret; enableFields(false); readFields(); obdType = pDataTypeBox->itemData(pDataTypeBox->currentIndex()).value<eObdType>(); switch (obdType) { case kObdTypeUInt8: case kObdTypeInt8: size = 1; break; case kObdTypeUInt16: case kObdTypeInt16: size = 2; break; case kObdTypeUInt32: case kObdTypeInt32: size = 4; break; case kObdTypeUInt64: case kObdTypeInt64: size = 8; break; case kObdTypeVString: case kObdTypeDomain: size = 4096*1024; break; } data.resize(size); ret = oplk_postUserEvent(readButton); if (ret != kErrorOk) { enableFields(true); } }
void Q3DataBrowser::update() { QSqlRecord* buf = d->frm.record(); Q3SqlCursor* cur = d->cur.cursor(); if (!buf || !cur) return; QSql::Confirm conf = QSql::Yes; switch (d->dat.mode()){ case QSql::Insert: if (confirmInsert()) conf = confirmEdit(QSql::Insert); switch (conf) { case QSql::Yes: if (insertCurrent()) d->dat.setMode(QSql::Update); break; case QSql::No: d->dat.setMode(QSql::Update); cur->editBuffer(true); readFields(); break; case QSql::Cancel: break; } break; default: d->dat.setMode(QSql::Update); if (confirmUpdate()) conf = confirmEdit(QSql::Update); switch (conf) { case QSql::Yes: updateCurrent(); break; case QSql::No: case QSql::Cancel: break; } break; } }
void Foam::Cloud<ParticleType>::initCloud(const bool checkClass) { IOPosition<ParticleType> ioP(*this); if (ioP.headerOk()) { ioP.readData(*this, checkClass); ioP.close(); if (this->size()) { readFields(); } } else { WarningIn("Cloud<ParticleType>::initCloud(const bool checkClass)") << "Cannot read particle positions file " << nl << " " << ioP.path() << nl << " assuming the initial cloud contains 0 particles." << endl; } }
Transfer * ResponseProtocol::parse( const QByteArray & wire, uint & bytes ) { m_bytes = 0; m_collatingFields.clear(); //m_din = new QDataStream( wire, IO_ReadOnly ); QBuffer inBuf( wire ); inBuf.open( IO_ReadOnly); m_din.setDevice( &inBuf ); m_din.setByteOrder( QDataStream::LittleEndian ); // check that this begins with a HTTP (is a response) Q_UINT32 val; m_din >> val; m_bytes += sizeof( Q_UINT32 ); Q_ASSERT( qstrncmp( (const char *)&val, "HTTP", strlen( "HTTP" ) ) == 0 ); // read rest of HTTP header and look for a 301 redirect. QCString headerFirst; if ( !readGroupWiseLine( headerFirst ) ) return 0; // pull out the HTTP return code int firstSpace = headerFirst.find( ' ' ); QString rtnField = headerFirst.mid( firstSpace, headerFirst.find( ' ', firstSpace + 1 ) ); bool ok = true; int rtnCode; int packetState = -1; rtnCode = rtnField.toInt( &ok ); debug( "CoreProtocol::readResponse() got HTTP return code " ); // read rest of header QStringList headerRest; QCString line; while ( line != "\r\n" ) { if ( !readGroupWiseLine( line ) ) { m_din.unsetDevice(); return 0; } headerRest.append( line ); debug( QString( "- read header line - (%1) : %2" ).arg( line.length() ).arg( line.data() ) ); } debug( "ResponseProtocol::readResponse() header finished" ); // if it's a redirect, set flag if ( ok && rtnCode == 301 ) { debug( "- server redirect " ); packetState = ServerRedirect; m_din.unsetDevice(); return 0; } // other header processing ( 500! ) if ( ok && rtnCode == 500 ) { debug( QString( "- server error %1" ).arg( rtnCode ) ); packetState = ServerError; m_din.unsetDevice(); return 0; } if ( ok && rtnCode == 404 ) { debug( QString( "- server error %1" ).arg( rtnCode ) ); packetState = ServerError; m_din.unsetDevice(); return 0; } if ( m_din.atEnd() ) { debug( "- no fields" ); packetState = ProtocolError; m_din.unsetDevice(); return 0; } // read fields if ( !readFields( -1 ) ) { m_din.unsetDevice(); return 0; } // find transaction id field and create Response object if nonzero int tId = 0; int resultCode = 0; Field::FieldListIterator it; Field::FieldListIterator end = m_collatingFields.end(); it = m_collatingFields.find( NM_A_SZ_TRANSACTION_ID ); if ( it != end ) { Field::SingleField * sf = dynamic_cast<Field::SingleField*>( *it ); if ( sf ) { tId = sf->value().toInt(); debug( QString( "ResponseProtocol::readResponse() - transaction ID is %1" ).arg( tId ) ); m_collatingFields.remove( it ); delete sf; } } it = m_collatingFields.find( NM_A_SZ_RESULT_CODE ); if ( it != end ) { Field::SingleField * sf = dynamic_cast<Field::SingleField*>( *it ); if ( sf ) { resultCode = sf->value().toInt(); debug( QString( "ResponseProtocol::readResponse() - result code is %1" ).arg( resultCode ) ); m_collatingFields.remove( it ); delete sf; } } // append to inQueue if ( tId ) { debug( QString( "ResponseProtocol::readResponse() - setting state Available, got %1 fields in base array" ).arg(m_collatingFields.count() ) ); packetState = Available; bytes = m_bytes; m_din.unsetDevice(); return new Response( tId, resultCode, m_collatingFields ); } else { debug( "- WARNING - NO TRANSACTION ID FOUND!" ); m_state = ProtocolError; m_din.unsetDevice(); m_collatingFields.purge(); return 0; } }
bool ResponseProtocol::readFields( int fieldCount, Field::FieldList * list ) { // build a list of fields. // If there is already a list of fields stored in m_collatingFields, // the list we're reading on this iteration must be a nested list // so when we're done reading it, add it to the MultiList element // that is the last element in the top list in m_collatingFields. // if we find the beginning of a new nested list, push the current list onto m_collatingFields debug( "ResponseProtocol::readFields()" ); if ( fieldCount > 0 ) debug( QString( "reading %1 fields" ).arg( fieldCount ) ); Field::FieldList currentList; while ( fieldCount != 0 ) // prevents bad input data from ruining our day { // the field being read // read field Q_UINT8 type, method; Q_UINT32 val; QCString tag; // read uint8 type if ( !okToProceed() ) { currentList.purge(); return false; } m_din >> type; m_bytes += sizeof( Q_UINT8 ); // if type is 0 SOMETHING_INVALID, we're at the end of the fields if ( type == 0 ) /*&& m_din->atEnd() )*/ { debug( "- end of field list" ); m_packetState = FieldsRead; // do something to indicate we're done break; } // read uint8 method if ( !okToProceed() ) { currentList.purge(); return false; } m_din >> method; m_bytes += sizeof( Q_UINT8 ); // read tag and length if ( !safeReadBytes( tag, val ) ) { currentList.purge(); return false; } debug( QString( "- type: %1, method: %2, tag: %3," ).arg( type ).arg( method ).arg( tag.data() ) ); // if multivalue or array if ( type == NMFIELD_TYPE_MV || type == NMFIELD_TYPE_ARRAY ) { // read length uint32 if ( !okToProceed() ) { currentList.purge(); return false; } m_din >> val; m_bytes += sizeof( Q_UINT32 ); // create multifield debug( QString( " multi field containing: %1" ).arg( val ) ); Field::MultiField* m = new Field::MultiField( tag, method, 0, type ); currentList.append( m ); if ( !readFields( val, ¤tList) ) { currentList.purge(); return false; } } else { if ( type == NMFIELD_TYPE_UTF8 || type == NMFIELD_TYPE_DN ) { QCString rawData; if( !safeReadBytes( rawData, val ) ) { currentList.purge(); return false; } if ( val > NMFIELD_MAX_STR_LENGTH ) { m_packetState = ProtocolError; break; } // convert to unicode - ignore the terminating NUL, because Qt<3.3.2 doesn't sanity check val. QString fieldValue = QString::fromUtf8( rawData.data(), val - 1 ); debug( QString( "- utf/dn single field: %1" ).arg( fieldValue ) ); // create singlefield Field::SingleField* s = new Field::SingleField( tag, method, 0, type, fieldValue ); currentList.append( s ); } else { // otherwise ( numeric ) // read value uint32 if ( !okToProceed() ) { currentList.purge(); return false; } m_din >> val; m_bytes += sizeof( Q_UINT32 ); debug( QString( "- numeric field: %1" ).arg( val ) ); Field::SingleField* s = new Field::SingleField( tag, method, 0, type, val ); currentList.append( s ); } } // decrease the fieldCount if we're using it if ( fieldCount > 0 ) fieldCount--; }
//------------------------------------------------------------------------------ void SdoDialog::startWrite() { eObdType obdType; int size = 0; tOplkError ret; enableFields(false); readFields(); obdType = pDataTypeBox->itemData(pDataTypeBox->currentIndex()).value<eObdType>(); switch (obdType) { case kObdTypeVString: data = pDataEdit->text().toAscii(); break; case kObdTypeDomain: data = QByteArray::fromHex(pDataEdit->text().toAscii()); break; default: QStringList list = pDataEdit->text().split(QRegExp("[^0-9a-fA-Fx]+"), QString::SkipEmptyParts); if (list.count() < 1) { QMessageBox::critical(this, "Data invalid", "The specified data field does not consist of one number. Please correct and try again."); enableFields(true); return; } bool fConvOk = false; quint64 uval; qint64 val; switch (obdType) { case kObdTypeUInt8: case kObdTypeUInt16: case kObdTypeUInt32: case kObdTypeUInt64: uval = list[0].toULongLong(&fConvOk, 0); if (!fConvOk) { QMessageBox::critical(this, "Data invalid", "The specified data format is not an unsigned integer. Please correct and try again."); enableFields(true); return; } data.resize(8); qToLittleEndian<quint64>(uval, (uchar*)data.data()); break; case kObdTypeInt8: case kObdTypeInt16: case kObdTypeInt32: case kObdTypeInt64: val = list[0].toLongLong(&fConvOk, 0); if (!fConvOk) { QMessageBox::critical(this, "Data invalid", "The specified data format is not a signed integer. Please correct and try again."); enableFields(true); return; } data.resize(8); qToLittleEndian<qint64>(val, (uchar*)data.data()); break; } switch (obdType) { case kObdTypeUInt8: case kObdTypeInt8: size = 1; break; case kObdTypeUInt16: case kObdTypeInt16: size = 2; break; case kObdTypeUInt32: case kObdTypeInt32: size = 4; break; case kObdTypeUInt64: case kObdTypeInt64: size = 8; break; } data.resize(size); } ret = oplk_postUserEvent(writeButton); if (ret != kErrorOk) { enableFields(true); } }
void Q3DataView::refresh(QSqlRecord* buf) { if (buf && buf != record()) setRecord(buf); readFields(); }