本文整理汇总了C++中dataStream函数的典型用法代码示例。如果您正苦于以下问题:C++ dataStream函数的具体用法?C++ dataStream怎么用?C++ dataStream使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dataStream函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dataStream
void ObjectConstraintBallSocket::deserialize(QByteArray serializedArguments) {
QDataStream dataStream(serializedArguments);
EntityDynamicType type;
dataStream >> type;
assert(type == getType());
QUuid id;
dataStream >> id;
assert(id == getID());
uint16_t serializationVersion;
dataStream >> serializationVersion;
if (serializationVersion != ObjectConstraintBallSocket::constraintVersion) {
assert(false);
return;
}
withWriteLock([&] {
quint64 serverExpires;
dataStream >> serverExpires;
_expires = serverTimeToLocalTime(serverExpires);
dataStream >> _tag;
dataStream >> _pivotInA;
dataStream >> _otherID;
dataStream >> _pivotInB;
_active = true;
});
示例2: SendData
nsresult SendData(const char * aData, nsIStreamListener* aListener, nsIRequest* request) {
nsresult rv;
nsCOMPtr<nsIStringInputStream> dataStream
(do_CreateInstance("@mozilla.org/io/string-input-stream;1", &rv));
NS_ENSURE_SUCCESS(rv, rv);
rv = dataStream->SetData(aData, strlen(aData));
NS_ENSURE_SUCCESS(rv, rv);
uint64_t avail = 0;
dataStream->Available(&avail);
uint64_t offset = 0;
while (avail > 0) {
uint32_t count = saturated(avail);
rv = aListener->OnDataAvailable(request, nullptr, dataStream,
offset, count);
if (NS_FAILED(rv)) return rv;
offset += count;
avail -= count;
}
return NS_OK;
}
示例3: currentItem
void WidgetListing::startDrag( Qt::DropActions /*supportedActions*/ )
{
QListWidgetItem *item = currentItem();
QByteArray itemData;
QDataStream dataStream( &itemData, QIODevice::WriteOnly );
int i_type = item->data( Qt::UserRole ).toInt();
int i_option = parent->getOptions();
dataStream << i_type << i_option;
/* Create a new dragging event */
QDrag *drag = new QDrag( this );
/* With correct mimedata */
QMimeData *mimeData = new QMimeData;
mimeData->setData( "vlc/button-bar", itemData );
drag->setMimeData( mimeData );
/* And correct pixmap */
QPixmap aPixmap = item->icon().pixmap( QSize( 22, 22 ) );
drag->setPixmap( aPixmap );
drag->setHotSpot( QPoint( 20, 20 ) );
/* We want to keep a copy */
drag->exec( Qt::CopyAction | Qt::MoveAction );
}
示例4: GetData
void
GPrefsMgr::GetInboxes
(
JPtrArray<JString>& inboxes
)
{
if (IDValid(kGInboxesID))
{
std::string data;
const JBoolean ok = GetData(kGInboxesID, &data);
assert( ok );
std::istringstream dataStream(data);
JSize count;
dataStream >> count;
inboxes.SetCompareFunction(CompareFileNames);
for (JIndex i=1; i<=count; i++)
{
JString* str = new JString;
assert( str != NULL );
dataStream >> *str;
if (!inboxes.InsertSorted(str, kJFalse))
{
delete str;
}
}
}
}
示例5: findPiece
void PuzzleWidget::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("image/x-puzzle-piece")
&& findPiece(targetSquare(event->pos())) == -1) {
QByteArray pieceData = event->mimeData()->data("image/x-puzzle-piece");
QDataStream dataStream(&pieceData, QIODevice::ReadOnly);
QRect square = targetSquare(event->pos());
QPixmap pixmap;
QPoint location;
dataStream >> pixmap >> location;
pieceLocations.append(location);
piecePixmaps.append(pixmap);
pieceRects.append(square);
highlightedRect = QRect();
update(square);
event->setDropAction(Qt::MoveAction);
event->accept();
if (location == QPoint(square.x()/pieceSize(), square.y()/pieceSize())) {
inPlace++;
if (inPlace == 25)
emit puzzleCompleted();
}
} else {
示例6: load
void load(const std::string& ofileBase) {
std::string hashFN = ofileBase + ".bph";
std::string dataFN = ofileBase + ".val";
if ( !FileExists_(hashFN.c_str()) ) {
std::cerr << "BooM: Looking for perfect hash function file [" << hashFN << "], which doesn't exist! exiting.\n";
std::exit(1);
}
if ( !FileExists_(dataFN.c_str()) ) {
std::cerr << "BooM: Looking for key-value file [" << dataFN << "], which doesn't exist! exiting.\n";
std::exit(1);
}
// load the perfect hash function
{
boophf_.reset(new BooPHFT);
std::ifstream is(hashFN, std::ios::binary);
boophf_->load(is);
is.close();
}
// and the values
{
std::ifstream dataStream(dataFN, std::ios::binary);
{
cereal::BinaryInputArchive inArchive(dataStream);
inArchive(data_);
}
dataStream.close();
}
built_ = true;
}
示例7: dataStream
void TASARIM_DESIGN_WIDGET::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("application/x-dnditemdata")) {
QByteArray itemData = event->mimeData()->data("application/x-dnditemdata");
QDataStream dataStream(&itemData, QIODevice::ReadOnly);
QPoint offset;
dataStream >> offset;
m_last_move_label->move(event->pos() - offset);
SELECT_VARIABLE( m_last_move_label );
SET_LAST_SELECTED_VARIABLE( m_last_move_label );
emit VARIABLE_POSITION_CHANGED( m_last_move_label->objectName().split("\t").at(0).toInt(), m_last_move_label->pos().x(), m_last_move_label->pos().y() );
if (event->source() == this) {
event->setDropAction(Qt::MoveAction);
event->accept();
} else {
event->acceptProposedAction();
}
}
示例8: dataStream
void DragLabel::mousePressEvent(QMouseEvent *event)
{
// if(this->tempo_setup){ //desabilita ação de drag para labels que representarem tempo_setup de maquina
// //return;
// }
// qDebug() << "mousePressEvent called";
dragstart = event->pos();
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
//passar variavel tamanho como float zoa o drop
dataStream << labelText << tooltip << QPoint(event->pos() - rect().topLeft()) << (int)tamanho << cor.red() << cor.green() << cor.blue() << cor.alpha() << tempo_setup << coordenada;
QMimeData *mimeData = new QMimeData;
//pra que serve mimeData?
mimeData->setData("application/x-fridgemagnet", itemData);
mimeData->setText(labelText);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setHotSpot(event->pos() - rect().topLeft());
drag->setPixmap(*pixmap());
hide();
//como funciona drag->exec() ?
if(drag->exec(Qt::MoveAction | Qt::CopyAction, Qt::CopyAction) == Qt::MoveAction)
close();
else
show();
}
示例9: contentsMargins
void DragTool::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
const QMargins margins = contentsMargins();
const QRect iconRect((width() - d->iconSize.width()) / 2, margins.top(),
d->iconSize.width(), d->iconSize.height());
if (iconRect.contains(event->pos())) {
auto drag = new QDrag(this);
auto mimeData = new QMimeData;
QByteArray data;
QDataStream dataStream(&data, QIODevice::WriteOnly);
dataStream << d->newElementId << d->title << d->stereotype;
mimeData->setData(QLatin1String(qmt::MIME_TYPE_NEW_MODEL_ELEMENTS), data);
drag->setMimeData(mimeData);
QPixmap pixmap = d->icon.pixmap(d->iconSize, QIcon::Normal, QIcon::Off);
QPainter painter(&pixmap);
painter.setCompositionMode(QPainter::CompositionMode_DestinationIn);
painter.fillRect(pixmap.rect(), QColor(0, 0, 0, 96));
drag->setPixmap(pixmap);
drag->setHotSpot(QPoint(drag->pixmap().width() / 2, drag->pixmap().height() / 2));
d->disableFrame = true;
update();
Qt::DropAction dropAction = drag->exec();
Q_UNUSED(dropAction);
d->disableFrame = false;
update();
}
}
}
示例10: dataStream
void DragWidgetBin::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("application/x-dnditemdata")) {
QByteArray itemData = event->mimeData()->data("application/x-dnditemdata");
QDataStream dataStream(&itemData, QIODevice::ReadOnly);
QPixmap pixmap;
QPoint offset;
dataStream >> pixmap >> offset;
if (event->source() == dragwidgetptr) {
if (draggedLabel->type == mQLabel::TRACK) {
return;
}
else {
dragwidgetptr->labelsInside.erase(draggedLabel);
std::vector<mQLabel*> toDelete;
for(std::set<mQLabel*>::iterator it = dragwidgetptr->tracksInside.begin(); it !=dragwidgetptr->tracksInside.end(); it++)
if((*it)->getConn1() == draggedLabel || (*it)->getConn2() == draggedLabel) {
toDelete.push_back(*it);
}
for(mQLabel *mQL : toDelete) {
dragwidgetptr->tracksInside.erase(mQL);
mQL->close();
}
}
draggedLabel->close();
draggedLabel = nullptr;
}
} else {
示例11: dataStream
void ObjectActionTravelOriented::deserialize(QByteArray serializedArguments) {
QDataStream dataStream(serializedArguments);
EntityDynamicType type;
dataStream >> type;
assert(type == getType());
QUuid id;
dataStream >> id;
assert(id == getID());
uint16_t serializationVersion;
dataStream >> serializationVersion;
if (serializationVersion != ObjectActionTravelOriented::actionVersion) {
assert(false);
return;
}
withWriteLock([&] {
dataStream >> _forward;
dataStream >> _angularTimeScale;
quint64 serverExpires;
dataStream >> serverExpires;
_expires = serverTimeToLocalTime(serverExpires);
dataStream >> _tag;
_active = (_forward != glm::vec3());
});
示例12: dataStream
void SerialServer::processData(QByteArray& data)
{
QDataStream dataStream(&data, QIODevice::ReadOnly);
QString fileName;
QByteArray fileData;
dataStream >> fileName;
dataStream >> fileData;
if(fileName.isEmpty())
return;
QFileInfo fileInfo(fileName);
QString projectPath = createProject(fileInfo.baseName());
writeFile(projectPath + "/" + fileName, fileData);
QString mainFilePath = projectPath + "/" + fileName;
while(dataStream.status() == QDataStream::Ok) {
fileName.clear();
fileData.clear();
dataStream >> fileName;
dataStream >> fileData;
if(!fileName.isEmpty()) {
writeFile(projectPath + "/" + fileName, fileData);
}
}
emit downloadFinished(mainFilePath);
}
示例13: dataStream
void ClusterSummaryWidget::dropEvent(QDropEvent *event)
{
std::cout << "dropping elemnents!!" << std::endl;
#if 0
event->ignore();
#else
if (event->mimeData()->hasFormat("clustering/ImageChar")) {
QByteArray pieceData = event->mimeData()->data("clustering/ImageChar");
QDataStream dataStream(&pieceData, QIODevice::ReadOnly);
CharClustIt senderIt;
quint64 address;
dataStream >> address;
senderIt = *(CharClustIt *)(address);
int nElements;
dataStream >> nElements;
std::vector<ImageCharIt> iterators;
for (int i=0; i<nElements; ++i) {
dataStream >> address;
ImageCharIt *pIt = (ImageCharIt *) address;
iterators.push_back(*pIt);
}
// move elemnts:
// std::cout << "moving elements from " << senderID << " to " << this->mClusterID << std::endl;
emit moveToCluster(senderIt, this->mClustIt, iterators);
// accept event
event->setDropAction(Qt::MoveAction);
event->accept();
} // end if accept
示例14: dataStream
void EntityTreeWidget::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() == Qt::LeftButton
&& (event->pos() - _startDragPos).manhattanLength() >= QApplication::startDragDistance())
{
EntityTreeWidgetItem * item = dynamic_cast<EntityTreeWidgetItem *>(currentItem());
if (item&&!item->isDisabled())
{
_dragEntity = item;
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
NtgEntityModel entityModel = _entityModelHash.value(item->text(1));
QPixmap pixmap = item->icon(0).pixmap(QSize(24,24));
dataStream << entityModel;
QMimeData * mimeData = new QMimeData;
mimeData->setData("netglub/x-node-model", itemData);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setPixmap(pixmap);
Qt::DropAction dropAction = drag->exec(Qt::CopyAction);
Q_UNUSED(dropAction);
_dragEntity = NULL;
}
}
}
示例15: while
void PlayerCardListWidget::mousePressEvent(QMouseEvent *event)
{
PlayerCardWidget *child = static_cast<PlayerCardWidget*>(childAt(event->pos()));
if (!child)
return;
// Float up the hierachy until the PlayerCardWidget is found, or we hit the current widget
while ((!child->property("PlayerCardWidget").isValid()) && ((PlayerCardListWidget*)child != this)) {
child = static_cast<PlayerCardWidget*>(child->parent());
}
// If the child is not a PlayerCardWidget, return
if (!child->property("PlayerCardWidget").isValid())
return;
QPoint hotSpot = event->pos() - child->pos();
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
dataStream << child->playerNumber() << QPoint(hotSpot);
QMimeData *mimeData = new QMimeData;
mimeData->setData("application/x-chessplayer", itemData);
mimeData->setText(child->player()->name());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setPixmap(QPixmap::grabWidget(child));
drag->setHotSpot(hotSpot);
child->hide();
if (drag->exec(Qt::MoveAction | Qt::CopyAction, Qt::CopyAction) == Qt::MoveAction)
child->close();
else
child->show();
}