Exemple #1
0
        public Indexer(IndexerArgs args)
        {
            WriteLogo();
            WriteArgs();

            _args            = args;
            _indexDirectory  = FSDirectory.GetDirectory(args.IndexPath);
            _indexQueueLimit = new Semaphore(args.MaxThreads * 4, args.MaxThreads * 4);
            ThreadPool.SetMaxThreads(args.MaxThreads, 1000);
            ThreadPool.SetMinThreads(args.MaxThreads / 2, Environment.ProcessorCount);

            _contentField   = new Field(FieldName.Content, _contentTokenStream);
            _pathField      = new Field(FieldName.Path, _pathTokenStream);
            _externalsField = new Field(FieldName.Externals, _externalsTokenStream);
            _messageField   = new Field(FieldName.Message, _messageTokenStream);

            _svn = new SharpSvnApi(args.RepositoryLocalUri, args.Credentials.User, args.Credentials.Password);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
            Mutex mutex = null;

            try
            {
                IndexerArgs indexerArgs = new IndexerArgs(args);
                mutex = new Mutex(false, indexerArgs.IndexPath.ToLowerInvariant().Replace('\\', '_').Replace(':', '_'));
                try
                {
                    mutex.WaitOne();
                }
                catch (AbandonedMutexException)
                {
                    Console.WriteLine("Warning: Mutex was abandoned from another Process");
                }

                Indexer indexer = new Indexer(indexerArgs);
                indexer.Run();
            }
            catch (IndexerArgsException x)
            {
                Console.WriteLine(x.Message);
            }
            finally
            {
                if (mutex != null)
                {
                    mutex.ReleaseMutex();
                    mutex.Close();
                }
            }
            AppDomain.CurrentDomain.UnhandledException -= OnUnhandledException;
#if DEBUG
            Console.WriteLine("Press any key");
            Console.ReadKey();
#endif
        }
Exemple #3
0
 /// <summary>
 /// This constructor is intended for tests in RAMDirectory only
 /// </summary>
 public Indexer(IndexerArgs args, Directory dir) : this(args)
 {
     _indexDirectory = dir;
 }