/* -------------------------------------------------------------------------- */ void ImageManager::AddMessageToImage( ID_type idImage, ID_type idMessage) { //Leo el registro imagen para obtener el id del primer registro de la lista de msgs. ImgRegistry *imgRegistry = this->GetImageRegistry(idImage); if( imgRegistry == NULL ) throw eFile(PATH_IMG_FILE); ID_type firstList = imgRegistry->GetPtrMsgList(); ListMsgRegistry msgRegistry(idMessage); try { //Si la lista esta vacia, la creo if( firstList == 0 ) this->orgListMsgs.CreateList( msgRegistry); else //Si no esta vacia, agrego el nuevo registro al principio this->orgListMsgs.AddToListFirst(msgRegistry, firstList); } catch(char * error){ throw eFile(PATH_MSG_LIST_FILE); } //Actualizo el PtrMsgList del registro imagen imgRegistry->SetPtrMsgList(msgRegistry.GetID()); this->UpdateImageRegistry(imgRegistry); delete imgRegistry; }
/* -------------------------------------------------------------------------- */ void ImageManager::RemoveMessageToImage( ID_type idImage, ID_type idMessage) { //Leo el registro imagen para obtener el id del primer registro de la lista de msgs. ImgRegistry * imgReg = this->GetImageRegistry(idImage); if( imgReg == NULL ) throw eFile(PATH_IMG_FILE); ID_type firstList = imgReg->GetPtrMsgList(); //verifica si la lista no esta vacia. if( firstList == 0 ) return; try { //Eliminar de la lista de mensajes de la imagen, el mensaje especifico. tRegisterList* msgList = this->orgListMsgs.GetList(firstList); itRegisterList it = msgList->begin(); ID_type idRegMsgToErase=0; ListMsgRegistry* msgReg=NULL; //Si la lista no esta vacia, asigno el puntero al nuevo mensaje. if( msgList->size() > 1 ) { //Busco el nuevo mensaje de la lista. while(it != msgList->end()) { msgReg = dynamic_cast<ListMsgRegistry*>(*it); ID_type msgRegId = msgReg->GetIDMessage(); if( msgRegId == idMessage ) { idRegMsgToErase = msgReg->GetID(); if( msgReg->GetID() == imgReg->GetPtrMsgList()) { imgReg->SetPtrMsgList(msgReg->GetNextID()); } break; } it++; } } else //Si esta vacia, apunta a NULL { msgReg = dynamic_cast<ListMsgRegistry*>(*it); idRegMsgToErase = msgReg->GetID(); imgReg->SetPtrMsgList(NULL); } this->orgListMsgs.DeleteFromList(idRegMsgToErase); UpdateImageRegistry(imgReg); delete imgReg; } catch(char * error){ throw eFile(PATH_MSG_LIST_FILE); } }
void EncodingFile(QString fName, HCRYPTKEY hKey) { QFile myFile(fName); QFile eFile(QString(getFType(fName) + "eFile.dat")); DWORD blockLen = 0, fDataSize; BYTE* fData; if (eFile.exists()) eFile.remove(); if (!myFile.exists()) { QMessageBox::critical(0, "Ошибка", "Файл не выбран", QMessageBox::Ok); return; } myFile.open(QIODevice::ReadOnly); eFile.open(QIODevice::WriteOnly); CryptEncrypt(hKey, 0, true, 0, NULL, &blockLen, myFile.size()); fData = new BYTE[blockLen]; memset(fData, 0, blockLen); while ((fDataSize = myFile.read((char*)fData, blockLen))) { if (!CryptEncrypt(hKey, 0, fDataSize < blockLen, 0, fData, &fDataSize, blockLen)) { QMessageBox::critical(0, "Ошибка", "Шифрование данных. " + GetErrorString(GetLastError()), QMessageBox::Ok); return; } eFile.write((char*)fData, fDataSize); memset(fData, 0, blockLen); } memset(fData, 0, blockLen); myFile.close(); eFile.close(); }
/******************************************************************************* * MAIN * ******************************************************************************/ int main(int argc, char** argv) { if (argc <= REQUIRED_PARAMS_NUM) { usage(argv[0]); } const char* fileNameE = argv[1]; const char* fileNameF = argv[2]; const char* fileNameA = argv[3]; maxPhraseLength = std::atoi(argv[4]); // read_optional_params(argc, argv, 5); // Init phrase pairs counters (add +1 for dummy zero-length counter). phrasePairsCounters.resize(maxPhraseLength + 1, 0); std::cerr << "Starting phrase pairs counter ..." << std::endl; // open input files std::ifstream eFile(fileNameE); std::ifstream fFile(fileNameF); std::ifstream aFile(fileNameA); // readInput(eFile, fFile, aFile); std::cerr << std::endl; // Leave the progress bar end on previous line. // close input files eFile.close(); fFile.close(); aFile.close(); std::cout << "############################" << std::endl << "# len # phrase pairs count #" << std::endl << "############################" << std::endl; for ( size_t i = 1; i < phrasePairsCounters.size(); ++i ) { std::cout << "# " << std::setw(3) << i << " # " << std::setw(18) << phrasePairsCounters[i] << " #" << std::endl; } std::cout << "############################" << std::endl; }
/******************************************************************************* * MAIN * ******************************************************************************/ int main(int argc, char* argv[]) { // Welcome user with program info! program_info(); if (argc <= REQUIRED_PARAMS_NUM) { usage(argv[0]); } const char* fileNameE = argv[1]; const char* fileNameF = argv[2]; const char* fileNameA = argv[3]; std::string fileNameExtract = std::string(argv[4]); // Init lossy counters. std::string lossyCountersParams; int paramIdx = 5; while ( (argc > paramIdx) && (*argv[paramIdx] != '-') ) { std::string param = std::string(argv[paramIdx]); if ( !parse_lossy_counting_params(param) ) { usage(argv[0]); } lossyCountersParams += (" " + param); ++paramIdx; } if ( paramIdx == REQUIRED_PARAMS_NUM ) { std::cerr << "ERROR: no Lossy Counting parameters specified!" << std::endl; usage(argv[0]); } for ( size_t i = 1; i < lossyCounters.size(); ++i ) { if ( lossyCounters[i] == NULL ) { std::cerr << "ERROR: max phrase length set to " << maxPhraseLength << ", but no Lossy Counting parameters specified for phrase pairs of length " << i << "!" << std::endl; usage(argv[0]); } } if ( (argc > paramIdx) && (strcmp(argv[paramIdx], "--compact") == 0) ) { compactOutputFlag = true; ++paramIdx; } if ( (argc > paramIdx) && (strcmp(argv[paramIdx], "--sort") == 0) ) { sortedOutput = true; ++paramIdx; } // read_optional_params(argc, argv, paramIdx); std::cerr << "Starting epochal phrase table extraction with params:" << lossyCountersParams << std::endl; std::cerr << "Output will be " << (sortedOutput ? "sorted" : "unsorted") << "." << std::endl; // open input files std::ifstream eFile(fileNameE); std::ifstream fFile(fileNameF); std::ifstream aFile(fileNameA); // open output files if (translationFlag) { if (sortedOutput) { extractFile.open((fileNameExtract + ".sorted").c_str()); extractFileInv.open((fileNameExtract + ".inv.sorted").c_str()); } else { extractFile.open(fileNameExtract.c_str()); extractFileInv.open((fileNameExtract + ".inv").c_str()); } } if (orientationFlag) { extractFileOrientation.open((fileNameExtract + ".o").c_str()); } // readInput(eFile, fFile, aFile); std::cerr << std::endl; // Leave the progress bar end on previous line. // close input files eFile.close(); fFile.close(); aFile.close(); FlushingOutputProcessor processor(compactOutputFlag); processOutput(processor); // close output files if (translationFlag) { extractFile.close(); extractFileInv.close(); } if (orientationFlag) { extractFileOrientation.close(); } printStats(); } // end of main()
TSS_REGISTER_ERROR( eArchiveWrite(), _T("File could not be written.") ) TSS_REGISTER_ERROR( eArchiveRead(), _T("File could not be read.") ) TSS_REGISTER_ERROR( eArchiveEOF(), _T("End of file reached.") ) TSS_REGISTER_ERROR( eArchiveSeek(), _T("File seek failed.") ) TSS_REGISTER_ERROR( eArchiveMemmap(), _T("Memory mapped archive file invalid.") ) TSS_REGISTER_ERROR( eArchiveOutOfMem(), _T("Archive ran out of memory.") ) TSS_REGISTER_ERROR( eArchiveInvalidOp(),_T("Archive logic error.") ) TSS_REGISTER_ERROR( eArchiveFormat(), _T("Archive file format invalid.") ) TSS_REGISTER_ERROR( eArchiveNotRegularFile(), _T("File is not a regular file.") ) TSS_REGISTER_ERROR( eArchiveCrypto(), _T("File could not be decrypted.") ) TSS_REGISTER_ERROR( eArchiveStringTooLong(), _T("String was too long.") ) /// File TSS_REGISTER_ERROR( eFile(), _T("File error.") ) TSS_REGISTER_ERROR( eFileOpen(), _T("File could not be opened.") ) TSS_REGISTER_ERROR( eFileWrite(), _T("File could not be written.") ) TSS_REGISTER_ERROR( eFileRead(), _T("File could not be read.") ) TSS_REGISTER_ERROR( eFileEOF(), _T("End of file reached.") ) TSS_REGISTER_ERROR( eFileSeek(), _T("File seek failed.") ) TSS_REGISTER_ERROR( eFileInvalidOp(), _T("File logic error.") ) TSS_REGISTER_ERROR( eFileTrunc(), _T("File could not be truncated.") ) TSS_REGISTER_ERROR( eFileClose(), _T("File could not be closed.") ) TSS_REGISTER_ERROR( eFileFlush(), _T("File could not be flushed.") ) TSS_REGISTER_ERROR( eFileRewind(), _T("File could not be rewound.") ) /// Win32 #if IS_UNIX