Example #1
0
        /// <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);
        }