public PacketSorter(MyFilesDB myFiles,MovingTCPScheduler scheduler)
 {
     _myFiles = myFiles;
     _fileSaver = new FileSaver(_myFiles,scheduler.fileTransferDB);
     _outBoundManager = scheduler.outboundManager;
     _scheduler = scheduler;
 }
        public Form1()
        {
            InitializeComponent();

            myFiles = new MyFilesDB();
            scheduler = new MovingTCPScheduler(myFiles);
            myNeighbors = new MyNeighbors(scheduler);
            filesToShareForm = new AddFilesToShare(myFiles);
            scheduler.Start();

            fileSearchForm = new FileSearchForm(myNeighbors, scheduler);

            refreshDataTimer = new System.Windows.Forms.Timer();
            refreshDataTimer.Interval = 10 * 1000;
            refreshDataTimer.Tick += new EventHandler(refreshDataTimer_Tick);
            refreshDataTimer.Start();
            refreshDataTimer_Tick(null, null);

            if (myNeighbors.GetListOfNeighbors().Count == 0)
            {
                MessageBox.Show("Hello, you must be new here...\n\nYou must enter the IP address of someone already in the neighborhood to join.\n\nOnce you are connected go to File>Hash Files to begin sharing and search for filesfrom the main screen.");
                AddNeighborForm addnb = new AddNeighborForm(myNeighbors);
                addnb.ShowDialog();
            }
        }
 public MyNeighbors(MovingTCPScheduler scheduler)
 {
     Load();
     _outbound = scheduler.outboundManager;
     _checkNeighbors.Interval = Properties.Settings.Default.PortChangeInterval*60*1000;
     _checkNeighbors.Tick += new EventHandler(_checkNeighbors_Tick);
     _checkNeighbors.Start();
     scheduler.myNeighbors = this;
     _checkNeighbors_Tick(null, null);
 }
 public FileSearchForm(MyNeighbors mn,MovingTCPScheduler scheduler)
 {
     InitializeComponent();
     myNeighbors=mn;
     outbound = scheduler.outboundManager;
     scheduler.fileSearchForm = this;
     fullResults = new ArrayList();
     fileTransferDB = scheduler.fileTransferDB;
     System.Threading.ThreadPool.SetMaxThreads(5, 5);
 }
 public OutboundManager(MovingTCPScheduler scheduler)
 {
     _scheduler = scheduler;
     //TODO: Keep track of files queued to send
     _filesToSend = new ArrayList();
 }