12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using HttpDownload;
- using NettyClient;
- using System.Threading;
- using TaskDatabase;
- namespace Client
- {
- public class ClientApp
- {
- TaskNettyClient client;
- SimpleMessageHandler simpleHandler;
- TaskService taskService;
- TaskDownloadManager taskDownloadManager;
- MessageHandler messageHandler;
- TaskHandler taskHandler;
- int maxTaskCount;
- string defaultFileDir;
- IRevitCommandExcutor revitCommandExcutor;
- public ClientApp(string ip, int port, string dir, int maxTaskCount, IRevitCommandExcutor revitCommandExcutor, int maxDownTaskCount=5) {
- client = new TaskNettyClient(ip, port);
- taskService = new TaskService();
- taskDownloadManager = new TaskDownloadManager(maxDownTaskCount);
- this.maxTaskCount = maxTaskCount;
- defaultFileDir = dir;
- this.revitCommandExcutor = revitCommandExcutor;
- }
- public void Start() {
-
- simpleHandler = new SimpleMessageHandler();
- if (messageHandler == null)
- {
- taskHandler = new TaskHandler(simpleHandler, taskService, taskDownloadManager, defaultFileDir, revitCommandExcutor);
- taskHandler.SyncAllTask();
- messageHandler = new MessageHandler(simpleHandler, maxTaskCount, taskHandler);
- messageHandler.ResumeAllTasks();
- ThreadPool.QueueUserWorkItem(messageHandler.HandleMessage);
- ThreadPool.QueueUserWorkItem(taskHandler.RunTasks);
- }
- else
- {
- messageHandler.setSimpleMessageHandler(simpleHandler);
- taskHandler.setSimpleMessageHandler(simpleHandler);
- }
- client.RunClientAsync(simpleHandler).Wait();
- }
- public void Close() {
- client.CloseAsync().Wait();
- }
- public void PauseAllTask() {
- taskDownloadManager.pauseAllTasks();
- messageHandler.PauseAllTasks();
- }
- public void ResumeAllTask()
- {
- taskDownloadManager.resumeAllTasks();
- messageHandler.ResumeAllTasks();
- }
- }
-
- }
|