示例#1
0
XFILE::CFile *CXBMCTestUtils::CreateTempFile(std::string const& suffix)
{
  CTempFile *f = new CTempFile();
  if (f->Create(suffix))
    return f;
  delete f;
  return NULL;
}
示例#2
0
bool CXBMCTestUtils::DeleteTempFile(XFILE::CFile *tempfile)
{
  if (!tempfile)
    return true;
  CTempFile *f = static_cast<CTempFile*>(tempfile);
  bool retval = f->Delete();
  delete f;
  return retval;
}
示例#3
0
bool CGattooImg::saveToSD()
{
	if (m_Img.empty()) return true;

	IImgConverter* pConverter = createImgConverter(IImgConverter::enDefault);

	cv::cvtColor(m_Img, m_Img, CV_RGB2GRAY);

	CTempFile tmpFile;
	tmpFile.Create();

	pConverter->Convert(m_Img, tmpFile);

	if (0x8000 & GetKeyState(VK_SHIFT))
	{
		pConverter->CreateBitmap(tmpFile.getName());
	}
	
	cv::cvtColor(m_Img, m_Img, CV_GRAY2RGB);

	std::string strDrive;
	getDriveToSave(strDrive);
	if (0 == strDrive.size()) return false;

	SWriteProgressData data;

	data.chDrive = strDrive.c_str()[0];
	data.szFilePath = tmpFile.getName();

	CUPDialog progress(AfxGetMainWnd()->GetSafeHwnd(), ThreadProc, (LPVOID)&data);

	progress.SetDialogTemplate(nullptr, MAKEINTRESOURCE(IDD_DIALOG_SAVE_PROGRESS), IDC_STATIC_PROGRESS, IDC_PROGRESS, IDC_BUTTON_CANCEL);

	if (IDOK == progress.DoModal())
		MessageBox(AfxGetMainWnd()->GetSafeHwnd(), _T("Image was saved to SD card successfully."), _T("Information"), MB_OK|MB_ICONINFORMATION);
	else
		MessageBox(AfxGetMainWnd()->GetSafeHwnd(), _T("Image saving to SD card was interrupted."), _T("Warning"), MB_OK|MB_ICONEXCLAMATION);
	
	pConverter->Destroy();

	return true;
}
示例#4
0
文件: Admin.cpp 项目: ChadSki/Phasor
	bool SaveAdminList(COutStream& stream)
	{
		std::string data;
		data.reserve(1 << 12); // 4kb

		for (auto itr = admin::adminList.cbegin(); itr != admin::adminList.cend();
			++itr)
		{
			data += itr->second.name + ",";
			data += itr->second.hash + ",";
			data += m_sprintf("%i\r\n", itr->second.accessLevel.get_level());
		}

		std::wstring adminPathTmp = adminPath + L".tmp";

		CTempFile<COutFile> file;
		if (!file.Open(adminPathTmp, GENERIC_READ | GENERIC_WRITE, 
			FILE_SHARE_READ, OPEN_ALWAYS)) {
			stream << L"can't open admin file : " << adminPath << endl;
			return false;
		}

		DWORD written;
		if (!file.Write((BYTE*)data.c_str(), data.size(), &written)) {
			stream << "can't write to new admin file" << endl;
			return false;
		}

		file.Close();

		if (!CFile::Move(adminPathTmp, adminPath, true)) {
			stream << "can't replace old admin file " << adminPath << endl;
			return false;
		}
		file.success();
		return true;
	}