FixLog::FixLog(QObject* parent) : QThread(parent), qLock_(new QReadWriteLock()), qEvent_(InitEvent()), reader_(FILENAME_FIXMESSAGES), readerPos_(0), online_(false) { setDevice(&writer_); if( pos() > 0 && openReader() ) findRecordsOffline(); readerPos_ = 0; online_ = 1; start(); }
void VideoGrabber::Main() { if ( !channel ) return ; PTRACE( 1, "Going to grab from video device" ); while ( run ) { mutex.Wait(); State s = state; mutex.Signal(); // prepare for the state... closeDevices(); switch( s ) { case SPreview: if( !openDevices() ) { stopPreview(); ancaInfo->setInt( VG_STATE, VG_IDLE ); } break; case SCall: openReader(); break; case SSleep: break; } preparing = false; // do switch( s ) { case SSleep: case SCall: goSleep(); break; case SPreview: while ( state == SPreview && run && !reconfigure ) { channel->Read( buffer, bufferSize ); channel->Write( buffer, bufferSize ); Sleep( 50 ); } } } }
bool VideoGrabber::openDevices() { PTRACE( 6, "VideoGrabber::openDevices" ); if( !openReader() || !openPlayer() ) return false; unsigned int w, h; videoReader->GetFrameSize( w, h ); videoPlayer->SetFrameSize( w, h ); if ( bufferSize && videoReader->GetMaxFrameBytes() > bufferSize ) delete buffer; if ( !bufferSize || videoReader->GetMaxFrameBytes() > bufferSize ) { buffer = new char[ videoReader->GetMaxFrameBytes() ]; bufferSize = videoReader->GetMaxFrameBytes(); PTRACE( 6, "Grabber buffer set to size " << bufferSize ); } return true; }
void Index::open(FileSystemPtr& pFileSys, AccessMode am, const DocumentSchema* pDocSchema) { FIRTEX_ASSERT2(m_pFileSys.isNull()); m_pFileSys = pFileSys; m_accessMode = am; BarrelsInfoPtr pBarrelsInfo(new BarrelsInfo()); pBarrelsInfo->read(pFileSys);//read barrels Info if (am == WRITE) { if (!pDocSchema) { FIRTEX_THROW(InvalidConfigException, "Schema is empty in write mode."); } m_pDocSchema = new DocumentSchema(*pDocSchema); writeSchema(m_pDocSchema, pFileSys); pBarrelsInfo->remove(m_pFileSys); m_pComponentBuilder = new ComponentBuilder(); m_pComponentBuilder->init(m_pDocSchema); initAnalyzerMapper(); m_pIndexBarrelKeeper = new IndexBarrelKeeper(m_pFileSys, m_pDocSchema.get(), m_pComponentBuilder.get(), m_pAnalyzerMapper.get()); m_pIndexBarrelKeeper->init(pBarrelsInfo, IndexBarrelKeeper::WRITE); openWriter(); } else // READ, APPEND or RDWR mode { if (pBarrelsInfo->getIndexVersion() != FX_INDEX_VERSION) { FIRTEX_THROW(VersionException, "Incompatible index version."); } if (pBarrelsInfo->getBarrelCount() > 0) { DocumentSchemaPtr pSchemaExist = readSchema(m_pFileSys); if (pSchemaExist.isNull()) { FIRTEX_THROW(IndexCollapseException, "Read schema FAILED."); } if (pDocSchema && !pSchemaExist->isEqual(*pDocSchema)) { FIRTEX_THROW(IllegalArgumentException, "The given document schema is not equal to the existing schema."); } m_pDocSchema = pSchemaExist; } else { if (!pDocSchema) { FIRTEX_THROW(IllegalArgumentException, "No document schema is specified."); } m_pDocSchema = new DocumentSchema(*pDocSchema); } m_pComponentBuilder = new ComponentBuilder(); m_pComponentBuilder->init(m_pDocSchema); initAnalyzerMapper(); m_pIndexBarrelKeeper = new IndexBarrelKeeper(m_pFileSys, m_pDocSchema.get(), m_pComponentBuilder.get(), m_pAnalyzerMapper.get()); if (am == READ || am == RDWR) { m_pIndexBarrelKeeper->init(pBarrelsInfo, (am == READ) ? IndexBarrelKeeper::READ : IndexBarrelKeeper::RDWR); openReader(); if (am == RDWR) { openWriter(); } } else if (am == APPEND) { m_pIndexBarrelKeeper->init(pBarrelsInfo, IndexBarrelKeeper::WRITE); openWriter(); } } }