PreferencesWindow::PreferencesWindow(QWidget *parent, map *pointer)
    :QWidget(parent), uip(new Ui::PreferencesWindow)
{
    uip->setupUi(this);
    connect(uip->pushButton, SIGNAL(released()), this, SLOT(saveData()));
    connect(uip->checkBox, SIGNAL(stateChanged(int)), this, SLOT(ticked()));

    this->pointer = pointer;

}
Example #2
0
void Disp2DPropLoadEngine::action()
{
	if(LOG) cerr << "debut applyCondi !!" << endl;
	leftbox = Body::byId(id_boxleft);
	rightbox = Body::byId(id_boxright);
	frontbox = Body::byId(id_boxfront);
	backbox = Body::byId(id_boxback);
	topbox = Body::byId(id_topbox);
	boxbas = Body::byId(id_boxbas);

	if(firstIt)
	{
		it_begin=scene->iter;
		H0=topbox->state->pos.y();
		X0=topbox->state->pos.x();
		Vector3r F_sup=scene->forces.getForce(id_topbox);
		Fn0=F_sup.y();
		Ft0=F_sup.x();

		Real	OnlySsInt=0	// the half number of real sphere-sphere (only) interactions, at the beginning of the perturbation
			,TotInt=0	// the half number of all the real interactions, at the beginning of the perturbation
			;

		InteractionContainer::iterator ii    = scene->interactions->begin();
		InteractionContainer::iterator iiEnd = scene->interactions->end();
        	for(  ; ii!=iiEnd ; ++ii ) 
        	{
        		if ((*ii)->isReal())
                	{
				TotInt++;
				const shared_ptr<Body>& b1 = Body::byId( (*ii)->getId1() );
				const shared_ptr<Body>& b2 = Body::byId( (*ii)->getId2() );
				if ( (b1->isDynamic()) && (b2->isDynamic()) )
					OnlySsInt++;
			}
		}
	
		coordSs0 = OnlySsInt/8590;	// 8590 is the number of spheres in the CURRENT case
		coordTot0 = TotInt / 8596;	// 8596 is the number of bodies in the CURRENT case

		firstIt=false;
	}


	if ( (scene->iter-it_begin) < nbre_iter)
	{	letDisturb();
	}
	else if ( (scene->iter-it_begin) == nbre_iter)
	{
		stopMovement();
		string fileName=Key + "DR"+boost::lexical_cast<string> (nbre_iter)+"ItAtV_"+boost::lexical_cast<string> (v)+"done.xml";
// 		Omega::instance().saveSimulation ( fileName );
		saveData();
	}
}
Example #3
0
MetaEditor::MetaEditor(QWidget *parent)
  : QDialog(parent),
    m_mainWindow(qobject_cast<MainWindow *>(parent)),
    m_Relator(MarcRelators::instance())
{
    setupUi(this);

    m_book = m_mainWindow->GetCurrentBook();
    m_version = m_book->GetConstOPF()->GetEpubVersion();
    m_opfdata = m_book->GetOPF()->GetText();

    QStringList headers;
    headers << tr("Name") << tr("Value");

    QString data = GetOPFMetadata();

    TreeModel *model = new TreeModel(headers, data);
    view->setModel(model);
    for (int column = 0; column < model->columnCount(); ++column)
        view->resizeColumnToContents(column);

    if (!isVisible()) {
        ReadSettings();
    }

    if (m_version.startsWith('3')) { 
        loadMetadataElements();
        loadMetadataProperties();
    } else {
        loadE2MetadataElements();
        loadE2MetadataProperties();
    }

    connect(view->selectionModel(),
            SIGNAL(selectionChanged(const QItemSelection &,
                                    const QItemSelection &)),
            this, SLOT(updateActions()));

    connect(delButton, SIGNAL(clicked()), this, SLOT(removeRow()));
    connect(tbMoveUp, SIGNAL(clicked()), this, SLOT(moveRowUp()));
    connect(tbMoveDown, SIGNAL(clicked()), this, SLOT(moveRowDown()));

    if (m_version.startsWith('3')) {
        connect(addMetaButton, SIGNAL(clicked()), this, SLOT(selectElement()));
        connect(addPropButton, SIGNAL(clicked()), this, SLOT(selectProperty()));
    } else {
        connect(addMetaButton, SIGNAL(clicked()), this, SLOT(selectE2Element()));
        connect(addPropButton, SIGNAL(clicked()), this, SLOT(selectE2Property()));
    }

    connect(buttonBox, SIGNAL(accepted()), this, SLOT(saveData()));
    connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));

    updateActions();
}
// ------------------------------------------------------------------------
void MainWindow::saveActionPressed()
{
	if(okToSave())
	{
		if(!data->hasSaveName())
			return saveAsActionPressed();

		std::string filename = data->getSaveName();
		saveData(filename);
	}
}
Example #5
0
int luaSaveChips(lua_State *L)
{
	char *fn=(char *)lua_tostring(L, 1);
	char str[512];
	lstrcpy(str,CurrDataDir);
	lstrcat(str,TEXT("\\"));
	lstrcat(str,fn);
	int e=saveData(str);
	lua_pushnumber(L,e);
	return 1;
}
BOOL CPluginStream::EndNode()
{
	if(!m_nodes.GetCount())
	{
		return FALSE;
	}
	DWORD nodeIndex = m_nodes[m_nodes.GetCount() - 1];
	saveData(m_data[nodeIndex].id, SDT_ENDNODE, (LPBYTE) &nodeIndex, sizeof(nodeIndex));
	m_nodes.Delete(m_nodes.GetCount() - 1);
	return TRUE;
}
void MainWindow::closeEvent(QCloseEvent* close)
{
    qDebug() << "closeEvent";
    if (saveData())
        close->accept();

    if (dlg_)
    {
        dlg_->close();
        dlg_.reset();
    }
}
Example #8
0
void getYear() {
  int iYear,iMonth,iDay;
  printf("\nPlease input data as [yyyy mm dd] :\n");
  fgets(buf, BUFFER_SIZE, stdin);
  sscanf(buf, "%d %d %d", &iYear, &iMonth, &iDay);

  if (!checkDate(iYear,iMonth,iDay)) {
    printf("Input date is invalid!\n\n");
    return;
  }
  saveData(DATE, iYear, iMonth, iDay);
}
Example #9
0
void UISettingsDialog::execute()
{
    /* Load data: */
    loadData();

    /* Execute dialog and wait for completion: */
    if (exec() != QDialog::Accepted)
        return;

    /* Save data: */
    saveData();
}
Example #10
0
void RcFile::saveSplitterSize (Parm name, QSplitter *sp, const QString &n)
{
  QStringList stringList;
  QValueList<int> sizeList = sp->sizes();
  
  int loop;
  for (loop = 0; loop < (int) sizeList.count(); loop++)
    stringList.append(QString::number(sizeList[loop]));
  
  QString s(stringList.join(","));
  saveData(name, s, n);
}
void ManageCrossPlayerData::collectCrossPlayerDataFinish(const string & line_id, const string & platform, uint64 player_guid)
{
	string key = getKey(line_id, platform, player_guid);

	CrossPlayerDataInfoMap_t::iterator it = m_cross_player_data_info_map.find(key);
	if (it != m_cross_player_data_info_map.end())
	{
		CrossPlayerDataInfo * cross_pd_info = it->second;
		m_cross_player_guid_data_info_map[player_guid] = cross_pd_info;
		saveData(cross_pd_info);
	}
}
void ProfilerThread::run()
{
	//------------------------------------------------------------------------
	//load up the debug info for it
	//
	//there's a potential problem here - if a module is unloaded after this,
	//we won't know about it. likewise, modules could be loaded at the same
	//address at different points in time. perhaps ideally we may need to
	//hook LoadLibrary/FreeLibrary calls? I suspect it's not much of a problem
	//in practice though. (bear in mind we can't load symbols once the process
	//has exited, so we have to do it up front...)
	//------------------------------------------------------------------------
	try
	{
		sym_info.loadSymbols(target_process);
	} catch(SymbolInfoExcep& e) {
		error("SymbolInfoExcep: " + e.what());
		return;
	}	

	DWORD startTick = GetTickCount();

	try
	{
		sampleLoop();
	} catch(ProfilerExcep& e) {
		// see if it's an actual error, or did the thread just finish naturally
		for(std::vector<Profiler>::const_iterator it = profilers.begin(); it != profilers.end(); ++it)
		{
			const Profiler& profiler(*it);
			if (!profiler.targetExited())
			{
				error("ProfilerExcep: " + e.what());
				return;
			}
		}

		numThreadsRunning = 0;
	}

	DWORD endTick = GetTickCount();
	int diff = endTick - startTick;
	duration = diff / 1000.0;

	saveData();

	symbolsPercent = 100;

	std::cout << "Profiling successfully completed." << std::endl;
	//::MessageBox(NULL, "Profiling successfully completed.", "Profiler", MB_OK);
}
int showdatawindow::routinedrawgroup(void)
{
    int i;

    if(newdata&&(!ui->CheckPauseShow->isChecked()))  //show the data when get new package
    {
        calNewPack();
        saveData();
        for( i= 0;i< NUMPOINTSAMPLE; i++)
        {
            if(!ui->checkReverse->isChecked())
                adc_new_data[i]=(float)adc_new_data[i]*zoomrate;
            else
                adc_new_data[i]=(float)adc_new_data[i]*zoomrate*-1;
        }
        //after save new data to array we write the new data on the scene
        //from here
        if(ui->checkTemp->isChecked())
        {
            drawData(ui->drawTemp,sceneTemp ,MAX_TEMP,MIN_TEMP,saveTemp,counttemp,NUMPATHTEMP,NUMPOINTSAMPLE_TEMP,0,false);  //no use countguileline and firsttimesample
        }
        if(ui->checkAccx->isChecked())
        {
            drawData(ui->drawAccx,sceneX ,MAX_MIN_X,-1*MAX_MIN_X,saveX,countx,NUMPATHX,NUMPOINTSAMPLE_X,0,false); //no use countguileline and firsttimesample
        }
        if(ui->checkAccy->isChecked())
        {
            drawData(ui->drawAccy,sceneY ,MAX_MIN_Y,-1*MAX_MIN_Y,saveY,county,NUMPATHY,NUMPOINTSAMPLE_Y,0,false); //no use countguileline and firsttimesample
        }
        if(ui->checkAccz->isChecked())
        {
            drawData(ui->drawAccz,sceneZ ,MAX_MIN_Z,-1*MAX_MIN_Z,saveZ,countz,NUMPATHZ,NUMPOINTSAMPLE_Z,&countguidelinez,first_Time_Samplez); //use countguileline and firsttimesample
        }
        if(ui->checkADC->isChecked())
        {
            drawData(ui->drawADC,sceneADC ,MAX_MIN_ADC,-1*MAX_MIN_ADC,adc_new_data,countadc,numScaleADC,NUMPOINTSAMPLE,&countguidelineadc,first_Time_Sampleadc);// use countguileline and firsttimesample
        }
        if(ui->checkSpectrogram->isChecked())
        {
//            QTime nowtime = QTime::currentTime();
            drawFFT();
//            QTime newtime = QTime::currentTime();
//            qDebug()<< "Spectrogram" <<nowtime.toString("hhmmsszzz")<<newtime.toString("hhmmsszzz");
        }
        //end
        showDataControl();
        newdata=false;
        return 1;
    }
    return 0;
}
Example #14
0
bool ScreenSetup::Create()
{
    bool foundtheme = false;

    // Load the theme for this screen
    foundtheme = LoadWindowFromXML("weather-ui.xml", "screen-setup", this);

    if (!foundtheme)
        return false;

    m_helpText = dynamic_cast<MythUIText *> (GetChild("helptxt"));

    m_activeList = dynamic_cast<MythUIButtonList *> (GetChild("activelist"));
    m_inactiveList = dynamic_cast<MythUIButtonList *> (GetChild("inactivelist"));

    m_finishButton = dynamic_cast<MythUIButton *> (GetChild("finishbutton"));

    MythUIText *activeheader = dynamic_cast<MythUIText *> (GetChild("activehdr"));
    if (activeheader)
        activeheader->SetText(tr("Active Screens"));

    MythUIText *inactiveheader = dynamic_cast<MythUIText *> (GetChild("inactivehdr"));
    if (inactiveheader)
        inactiveheader->SetText(tr("Inactive Screens"));

    if (!m_activeList || !m_inactiveList || !m_finishButton || !m_helpText)
    {
        LOG(VB_GENERAL, LOG_ERR, "Theme is missing required elements.");
        return false;
    }

    BuildFocusList();

    connect(m_activeList, SIGNAL(itemSelected(MythUIButtonListItem *)),
            this, SLOT(updateHelpText()));
    connect(m_activeList, SIGNAL(itemClicked(MythUIButtonListItem *)),
            this, SLOT(doListSelect(MythUIButtonListItem *)));
    connect(m_inactiveList, SIGNAL(itemSelected(MythUIButtonListItem *)),
            this, SLOT(updateHelpText()));
    connect(m_inactiveList, SIGNAL(itemClicked(MythUIButtonListItem *)),
            this, SLOT(doListSelect(MythUIButtonListItem *)));

    SetFocusWidget(m_inactiveList);

    m_finishButton->SetText(tr("Finish"));
    connect(m_finishButton, SIGNAL(Clicked()), this, SLOT(saveData()));

    loadData();

    return true;
}
Example #15
0
void qtractorInstrumentList::saveDataList ( QTextStream& ts,
	const qtractorInstrumentDataList& list ) const
{
    ts << endl;
	qtractorInstrumentDataList::ConstIterator it = list.constBegin(); 
	const qtractorInstrumentDataList::ConstIterator& it_end = list.constEnd();
	for ( ; it != it_end; ++it) {
		const QString& sName = it.value().name();
		if (!sName.isEmpty()) {
			ts << "[" << sName << "]" << endl;
			saveData(ts, it.value());
		}
	}
}
Example #16
0
	// -----------------------------------------------
	// export JSON
	// -----------------------------------------------
	bool DataFile::save() {
		char buffer[64];
		sprintf_s(buffer, 64, "content\\%s", getFileName());
		LOG << "exporting simplified json file: " << buffer;
		// FIXME: check if directory exists
		JSONWriter jw;
		if (jw.open(buffer)) {
			return saveData(jw);
		}
		else {
			LOG << "Cannot open file";
			return false;
		}
	}
Example #17
0
bool SourceSetup::Create()
{
    bool foundtheme = false;

    // Load the theme for this screen
    foundtheme = LoadWindowFromXML("weather-ui.xml", "source-setup", this);

    if (!foundtheme)
        return false;

    m_sourceList = dynamic_cast<MythUIButtonList *> (GetChild("srclist"));
    m_updateSpinbox = dynamic_cast<MythUISpinBox *> (GetChild("update_spinbox"));
    m_retrieveSpinbox = dynamic_cast<MythUISpinBox *> (GetChild("retrieve_spinbox"));
    m_finishButton = dynamic_cast<MythUIButton *> (GetChild("finishbutton"));
    m_sourceText = dynamic_cast<MythUIText *> (GetChild("srcinfo"));

    if (!m_sourceList || !m_updateSpinbox || !m_retrieveSpinbox
        || !m_finishButton || !m_sourceText)
    {
        LOG(VB_GENERAL, LOG_ERR, "Theme is missing required elements.");
        return false;
    }

    BuildFocusList();
    SetFocusWidget(m_sourceList);

    connect(m_sourceList, SIGNAL(itemSelected(MythUIButtonListItem *)),
            SLOT(sourceListItemSelected(MythUIButtonListItem *)));
#if 0
    connect(m_sourceList, SIGNAL(TakingFocus()),
            this, SLOT(sourceListItemSelected()));
#endif

    // 12 Hour max interval
    m_updateSpinbox->SetRange(10, 720, 10);
    connect(m_updateSpinbox, SIGNAL(LosingFocus()),
            SLOT(updateSpinboxUpdate()));

    // 2 Minute retrieval timeout max
    m_retrieveSpinbox->SetRange(10, 120, 5);
    connect(m_retrieveSpinbox, SIGNAL(LosingFocus()),
            SLOT(retrieveSpinboxUpdate()));

    m_finishButton->SetText(tr("Finish"));
    connect(m_finishButton, SIGNAL(Clicked()), SLOT(saveData()));

    loadData();

    return true;
}
Example #18
0
/*!
    Saves any changes to the profile and character sets it contains.

    Note that any changes to the character sets are stored separately
    to the system character sets.  This allows the user to revert
    back to a system character using the handwriting settings application.
*/
void QIMPenProfile::save() const
{
    QSettings usrConfig("Trolltech",userConfig());
    usrConfig.beginGroup("Settings");
    usrConfig.setValue("MultiTimeout", msTimeout);

    if (tstyle)
        usrConfig.setValue("Style", pstyle == BothCases ? "BothCases" : "ToggleCases" );
    if (istyle)
        usrConfig.setValue("IgnoreTimeout", isTimeout);

    // each set knows if its modified.
    if (!sets.isEmpty())
        saveData();
}
Example #19
0
Environment::Environment(void)
{
  profile = profileFunction();

  // Create a table of NB_HOSTS hosts
  hosts = new Host[DefVal::NB_HOSTS];
  hosts_parent = new int[DefVal::NB_HOSTS];
  for (int i = 0; i < DefVal::NB_HOSTS ; i++)
  {
    hosts[i] = Host(1);
    hosts_parent[i] = -1;
  }

  saveData(); // For the statistics !
}
Example #20
0
/**
 * \brief Convert all capabilities info to XML.
 */
void CapsRegistry::save()
{
	// Generate XML
	QDomDocument doc;
	QDomElement capabilities = doc.createElement("capabilities");
	doc.appendChild(capabilities);
	QHash<QString,CapsInfo>::ConstIterator i = capsInfo_.constBegin();
	for( ; i != capsInfo_.end(); i++) {
		QDomElement info = i.value().toXml(&doc);
		info.setAttribute("node",i.key());
		capabilities.appendChild(info);
	}

	saveData(doc.toString().toUtf8());
}
Example #21
0
////////////////////////////////////////////////////////////////////////////////
//
//	Server methods
//
////////////////////////////////////////////////////////////////////////////////
int ns__putData(struct soap *soap, std::vector<std::string> *nameList, arrayOfData *data, arrayOfName *names)
{
	DBG("\n");

	// gSOAP switches to SOAP_IO_STORE when SOAP_IO_CHUNK (HTTP chunking) is not supported by the client
	// Since it is undesirable to use SOAP_IO_STORE with streaming, we reset it to SOAP_IO_BUFFER
	if ((soap->omode & SOAP_IO) == SOAP_IO_STORE)
		soap->omode = (soap->omode & ~SOAP_IO) | SOAP_IO_BUFFER;
	// return name (key) for each data item
	names->resize(data->size());


	//	for(int j = 0; j < nameList->size(); j++){
	//		DBG("file name server: %s\n", nameList->at(j).c_str());
	//	}

	for (int i = 0; i < data->size(); i++)
	{
		char *s, *name;
		// the id field is set when DIME was used so the dime_write callbacks already saved the file
		if ((*data)[i].id)
		{
			assert((*data)[i].__ptr);
			name = ((struct dime_write_handle*)(*data)[i].__ptr)->name;


		}
		else
		{
			name = tempnam(TMPDIR, "data");

			saveData((*data)[i], name);
		}
		s = strrchr(name, '/');
		if (!s)
			s = strrchr(name, '\\');
		if (!s)
			s = name;
		else
			s++;
		(*names)[i] = soap_strdup(soap, s);
		if (!(*data)[i].id)
		{ // free data alloced with tempnam()
			free(name);
		}
	}
	return SOAP_OK;
}
static void getData(struct soap *soap, int argc, char **argv)
{ arrayOfData data;
  arrayOfName names;
  names.resize(argc - 2);
  for (int i = 2; i < argc; i++)
    names[i - 2] = argv[i];
  soap->user = (void*)names.__ptr;
  if (soap_call_ns__getData(soap, endpoint, NULL, &names, &data))
    soap_print_fault(soap, stderr);
  else
  { for (int j = 0; j < data.size(); j++)
      if (!data[j].id)
        saveData(data[j], argv[j + 2]);
    printf("Data retrieved\n");
  }
}
Example #23
0
urbi::UCallbackAction onJointSensor(const urbi::UMessage &msg) 
  {
	double value = (double)msg.value->val;
	std::cout << value <<std::flush;
	std::cout << "\n"<<std::flush;
	std::cout.precision(18);		
	double tim;
		
	getTime(tim);
	std::cout << tim <<std::flush;
	std::cout << "\n" <<std::flush;
	saveData(tim,value, msg.tag);
		

	return urbi::URBI_CONTINUE;
  }
Example #24
0
DataWidget::DataWidget(QWidget *parent, QString title, QStringList SL, QString file)
  : QWidget(parent)
  , inputData(SL)
  , filename(file)
  , ui(new Ui::DataWidget)
  , stackedWidget(qobject_cast<SlidingStackedWidget*>(parent))
{
  ui->setupUi(this) ;
  ui->titleLabel->setText(title);
  canceled = false ;

  if(!SL.empty())
    fillUiFromSList(SL);

  connect(ui->cancelButton, SIGNAL(clicked() ), this, SLOT(cancel() ) ) ;
  connect(ui->saveButton, SIGNAL(clicked() ), this, SLOT(saveData() ) ) ;
}
TaskExecuter::Transition TaskExecuter::action_lookAtObject() {
  // look at the rope
  // return a numpy n-by-3 numpy array representing the point cloud
  // in the base_footprint frame
  vector<btVector3> ropePts = ropeState_sim2real(
    scene.getRope()->getControlPoints(),
    scene.pr2m->pr2
  );
  py::object nparr = NP.attr("empty")(py::make_tuple(ropePts.size(), 3));
  for (int i = 0; i < ropePts.size(); ++i) {
    nparr[i][0] = ropePts[i].x();
    nparr[i][1] = ropePts[i].y();
    nparr[i][2] = ropePts[i].z();
  }
  saveData("points", nparr);
  return TR_SUCCESS;
}
Example #26
0
void GameData::setScore(int newScore)
{
	mLastScore = newScore;
	
	bool needSaveData = false;
	if(mLastScore > mBestScore) {
		mBestScore = mLastScore;
		
		needSaveData = true;
	}
	
	
	// Save data
	if(needSaveData) {
		saveData();
	}
}
Example #27
0
int main (int argc, char *argv[])
{
	char *configFile = NULL;
	char *outputFile = NULL;

	// Declare objects
	struct system System;
	struct tip Tip;
	struct space Space;
	struct graphene Graphene;
	struct substrate Substrate;

	initSystem(&System, &Tip, &Space, &Graphene, &Substrate);
	parseOptions(argc, argv, &configFile, &outputFile, &System, &Tip);
	parseFile(configFile, &System, &Tip, &Space, &Graphene, &Substrate);

	createSystem(&System, &Tip);
	createGraphene(&System, &Graphene);
//	transformCylindric(&System);
//	createSpace(&System, &Space);
	createTip(&System, &Tip);
	createSubstrate(&System, &Substrate);

	// Spheroidal Tip
	assignPointers(&System, &Tip, &Space, &Graphene, &Substrate);
	assignPotential(&System, &Tip, &Space, &Graphene, &Substrate);

	laplaceSpheroidal(&System, &Tip);

	retransformSpheroidal(&Tip);
	retransformCylindric(&System);

	saveData(outputFile, &System);

	// Visualize System if necessary
	if (System.visual)
	{
		initVisual();
		drawObjects(&System, &Tip, &Space, &Graphene, &Substrate);
	}

	free(System.points); // Free all points

	return EXIT_SUCCESS;
}
Example #28
0
void HGTController::onWriteMemory(WriteMem_s& ws)
{
	ws.handled = true;
	ws.wrote = ws.size;
	ws.stop = isStopped();

	try
	{
		ws.stop = saveData((const char*)ws.data, ws.size);
	}
	catch (gcException)
	{
		ws.stop = true;
	}

	m_uiDownloaded += ws.size;
	onProgress();
}
Example #29
0
void MainWidget::closeEvent(QCloseEvent *e)
{
  int r=QMessageBox::question(this,tr("RDAlsaConfig quit"),
			      tr("Save configuration before exiting?"),
			      QMessageBox::Yes,QMessageBox::No,
			      QMessageBox::Cancel);
  switch(r) {
    case QMessageBox::Yes:
      saveData();
      break;

    case QMessageBox::No:
      cancelData();
      break;

    default:
      break;
  }
}
static void getImage(struct soap *soap, char *name)
{ ns__Data image;
  arrayOfName temp;
  temp.resize(1);
  temp[0] = name;
  soap->user = (void*)temp.__ptr;
  if (soap_call_ns__getImage(soap, endpoint, NULL, name, image))
    soap_print_fault(soap, stderr);
  else if (image.id)
  { if (image.__size)
      printf("Got image %s size=%d type=%s through streaming DIME\n", name, image.__size, image.type?image.type:"");
    else
      printf("Got image %s type=%s through chunked streaming DIME\n", name, image.type?image.type:"");
  }
  else
  { printf("Got image %s\n", name);
    saveData(image, name);
  }
}