/// <summary> /// Create single instance /// </summary> /// <returns></returns> public static TaskFacade getInstance(IPAccountingConfig pConfig, IPlugin pPlugin) { if (cInstance == null) cInstance = new TaskFacade(pConfig, pPlugin); return (cInstance); }
/// <summary> /// /// </summary> public PluginIPAccountingUC(PluginParameters pPluginParams) { InitializeComponent(); /* * Set DGV double buffer on */ Type dgvType = DGV_TrafficData.GetType(); PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(DGV_TrafficData, true, null); /* * Plugin configuration */ cPluginParams = pPluginParams; String lBaseDir = String.Format(@"{0}\", (pPluginParams != null) ? pPluginParams.PluginDirectoryFullPath : Directory.GetCurrentDirectory()); String lSessionDir = (pPluginParams != null) ? pPluginParams.SessionDirectoryFullPath : String.Format("{0}sessions", lBaseDir); Config = new PluginProperties() { BaseDir = lBaseDir, SessionDir = lSessionDir, PluginName = "IP accounting", PluginDescription = "Listing data traffic statistics.", PluginVersion = "0.8", Ports = "", IsActive = true }; /* * Initialisation */ RB_Service_Click(null, null); cAccountingRecords = new BindingList<AccountingItem>(); DGV_TrafficData.DataSource = cAccountingRecords; IPAccountingConfig lConfig = new IPAccountingConfig() { BasisDirectory = Config.BaseDir, isDebuggingOn = false, //cPluginParams.HostApplication.IsDebuggingOn(), Interface = null, //cPluginParams.HostApplication.GetInterface(), onUpdateList = update, onIPAccountingExit = null }; cTask = TaskFacade.getInstance(lConfig, this); DomainFacade.getInstance(lConfig, this).addObserver(this); }