Exemple #1
0
/* -------------------------------------------------------------------------- */
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;
}
Exemple #2
0
/* -------------------------------------------------------------------------- */
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);
	}
}
Exemple #3
0
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();
}
Exemple #4
0
/*******************************************************************************
 * 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;

}
Exemple #5
0
/*******************************************************************************
 * 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