Пример #1
0
        public CrawlEventCollection GenerateEvents(DescendantsTreeCollection trees)
        {
            IObjectTree <IMappedObject>       storedTree = trees.StoredTree;
            IObjectTree <IFileSystemInfo>     localTree  = trees.LocalTree;
            IObjectTree <IFileableCmisObject> remoteTree = trees.RemoteTree;
            CrawlEventCollection createdEvents           = new CrawlEventCollection();
            List <IMappedObject> storedObjectsForRemote  = storedTree.ToList();
            List <IMappedObject> storedObjectsForLocal   = new List <IMappedObject>(storedObjectsForRemote);

            Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> > eventMap = new Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> >();

            createdEvents.creationEvents = this.remoteEventGenerator.CreateEvents(storedObjectsForRemote, remoteTree, eventMap);
            createdEvents.creationEvents.AddRange(this.localEventGenerator.CreateEvents(storedObjectsForLocal, localTree, eventMap));

            createdEvents.mergableEvents = eventMap;

            IMappedObject rootNode = storedTree.Item;

            storedObjectsForLocal.Remove(rootNode);
            storedObjectsForRemote.Remove(rootNode);

            createdEvents.removedLocalObjects  = this.TransformToFileSystemInfoDict(storedObjectsForLocal);
            createdEvents.removedRemoteObjects = this.TransformToFileSystemInfoDict(storedObjectsForRemote);

            return(createdEvents);
        }
        /// <summary>
        /// Creates the local events and returns the creationEvents, the other Events are stored in the eventMap, handled objects are removed from storedObjects.
        /// </summary>
        /// <returns>
        /// The remote events.
        /// </returns>
        /// <param name='storedObjects'>
        /// Stored objects.
        /// </param>
        /// <param name='remoteTree'>
        /// Remote tree.
        /// </param>
        /// <param name='eventMap'>
        /// Event map.
        /// </param>
        public List <AbstractFolderEvent> CreateEvents(
            List <IMappedObject> storedObjects,
            IObjectTree <IFileableCmisObject> remoteTree,
            Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> > eventMap,
            ISet <IMappedObject> handledStoredObjects)
        {
            List <AbstractFolderEvent> createdEvents = new List <AbstractFolderEvent>();
            var storedParent = storedObjects.Find(o => o.RemoteObjectId == remoteTree.Item.Id);

            foreach (var child in remoteTree.Children)
            {
                var storedMappedChild = storedObjects.Find(o => o.RemoteObjectId == child.Item.Id);
                if (storedMappedChild != null)
                {
                    AbstractFolderEvent newEvent = this.CreateRemoteEventBasedOnStorage(child.Item, storedParent, storedMappedChild);
                    eventMap[child.Item.Id] = new Tuple <AbstractFolderEvent, AbstractFolderEvent>(null, newEvent);
                }
                else
                {
                    // Added
                    AbstractFolderEvent addEvent = FileOrFolderEventFactory.CreateEvent(child.Item, null, MetaDataChangeType.CREATED, src: this);
                    createdEvents.Add(addEvent);
                }

                createdEvents.AddRange(this.CreateEvents(storedObjects, child, eventMap, handledStoredObjects));
                if (storedMappedChild != null)
                {
                    handledStoredObjects.Add(storedMappedChild);
                }
            }

            return(createdEvents);
        }
        /// <summary>
        /// Creates the local events and returns the creationEvents, the other Events are stored in the eventMap, handled objects are removed from storedObjects.
        /// </summary>
        /// <returns>
        /// The remote events.
        /// </returns>
        /// <param name='storedObjects'>
        /// Stored objects.
        /// </param>
        /// <param name='remoteTree'>
        /// Remote tree.
        /// </param>
        /// <param name='eventMap'>
        /// Event map.
        /// </param>
        public List<AbstractFolderEvent> CreateEvents(
            List<IMappedObject> storedObjects,
            IObjectTree<IFileableCmisObject> remoteTree,
            Dictionary<string, Tuple<AbstractFolderEvent, AbstractFolderEvent>> eventMap,
            ISet<IMappedObject> handledStoredObjects)
        {
            List<AbstractFolderEvent> createdEvents = new List<AbstractFolderEvent>();
            var storedParent = storedObjects.Find(o => o.RemoteObjectId == remoteTree.Item.Id);

            foreach (var child in remoteTree.Children) {
                var storedMappedChild = storedObjects.Find(o => o.RemoteObjectId == child.Item.Id);
                if (storedMappedChild != null) {
                    AbstractFolderEvent newEvent = this.CreateRemoteEventBasedOnStorage(child.Item, storedParent, storedMappedChild);
                    eventMap[child.Item.Id] = new Tuple<AbstractFolderEvent, AbstractFolderEvent>(null, newEvent);
                } else {
                    // Added
                    AbstractFolderEvent addEvent = FileOrFolderEventFactory.CreateEvent(child.Item, null, MetaDataChangeType.CREATED, src: this);
                    createdEvents.Add(addEvent);
                }

                createdEvents.AddRange(this.CreateEvents(storedObjects, child, eventMap, handledStoredObjects));
                if (storedMappedChild != null) {
                    handledStoredObjects.Add(storedMappedChild);
                }
            }

            return createdEvents;
        }
Пример #4
0
 private static void PersistModuleToFile(string folder, IModule module, IObjectTree tree)
 {
     string fileName = Path.Combine(folder, module.Name + ".module");
     using (StreamWriter writer = new StreamWriter(fileName))
     {
         writer.Write("#");
         foreach (string dependent in module.Dependents)
         {
             writer.Write(dependent);
             writer.Write(',');
         }
         
         writer.WriteLine();
         foreach (IEntity entity in module.Entities)
         {
             IDefinition node = tree.Find(module.Name, entity.Name);
             if (node == null)
             {
                 continue;
             }
             
             uint[] id = node.GetNumericalForm();
             /* 0: id
              * 1: type
              * 2: name
              * 3: parent name
              */
             writer.WriteLine(ObjectIdentifier.Convert(id) + "," + entity.GetType() + "," + entity.Name + "," + entity.Parent);
         }
         
         writer.Close();
     }
 }
Пример #5
0
        public static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine(@"This application takes one parameter.");
                return;
            }

            IObjectRegistry registry = new ReloadableObjectRegistry("modules");
            IObjectTree     tree     = registry.Tree;

            if (args[0].Contains("::"))
            {
                string name = args[0];
                var    oid  = registry.Translate(name);
                var    id   = new ObjectIdentifier(oid);
                Console.WriteLine(id);
            }
            else
            {
                string oid     = args[0];
                var    o       = tree.Search(ObjectIdentifier.Convert(oid));
                string textual = o.AlternativeText;
                Console.WriteLine(textual);
                if (o.GetRemaining().Count == 0)
                {
                    Console.WriteLine(o.Definition.Type.ToString());
                }
            }
        }
Пример #6
0
        public CrawlEventCollection GenerateEvents(DescendantsTreeCollection trees)
        {
            IObjectTree <IMappedObject>       storedTree    = trees.StoredTree;
            IObjectTree <IFileSystemInfo>     localTree     = trees.LocalTree;
            IObjectTree <IFileableCmisObject> remoteTree    = trees.RemoteTree;
            CrawlEventCollection createdEvents              = new CrawlEventCollection();
            List <IMappedObject> storedObjectsForRemote     = storedTree.ToList();
            List <IMappedObject> storedObjectsForLocal      = new List <IMappedObject>(storedObjectsForRemote);
            ISet <IMappedObject> handledLocalStoredObjects  = new HashSet <IMappedObject>();
            ISet <IMappedObject> handledRemoteStoredObjects = new HashSet <IMappedObject>();
            Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> > eventMap = new Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> >();

            createdEvents.creationEvents = this.remoteEventGenerator.CreateEvents(storedObjectsForRemote, remoteTree, eventMap, handledRemoteStoredObjects);
            createdEvents.creationEvents.AddRange(this.localEventGenerator.CreateEvents(storedObjectsForLocal, localTree, eventMap, handledLocalStoredObjects));

            createdEvents.mergableEvents = eventMap;

            handledLocalStoredObjects.Add(storedTree.Item);
            handledRemoteStoredObjects.Add(storedTree.Item);

            foreach (var handledObject in handledLocalStoredObjects)
            {
                storedObjectsForLocal.Remove(handledObject);
            }

            foreach (var handledObject in handledRemoteStoredObjects)
            {
                storedObjectsForRemote.Remove(handledObject);
            }

            this.AddDeletedObjectsToMergableEvents(storedObjectsForLocal, eventMap, true);
            this.AddDeletedObjectsToMergableEvents(storedObjectsForRemote, eventMap, false);

            return(createdEvents);
        }
Пример #7
0
        private static void PersistModuleToFile(string folder, IModule module, IObjectTree tree)
        {
            string fileName = Path.Combine(folder, module.Name + ".module");

            using (StreamWriter writer = new StreamWriter(fileName))
            {
                writer.Write("#");
                foreach (string dependent in module.Dependents)
                {
                    writer.Write(dependent);
                    writer.Write(',');
                }

                writer.WriteLine();
                foreach (IEntity entity in module.Entities)
                {
                    IDefinition node = tree.Find(module.Name, entity.Name);
                    if (node == null)
                    {
                        continue;
                    }

                    uint[] id = node.GetNumericalForm();

                    /* 0: id
                     * 1: type
                     * 2: name
                     * 3: parent name
                     */
                    writer.WriteLine(ObjectIdentifier.Convert(id) + "," + entity.GetType() + "," + entity.Name + "," + entity.Parent);
                }

                writer.Close();
            }
        }
Пример #8
0
        /// <summary>
        /// Creates the local events and returns the creationEvents, the other Events are stored in the eventMap, handled objects are removed from storedObjects
        /// </summary>
        /// <returns>
        /// The local events.
        /// </returns>
        /// <param name='storedObjects'>
        /// Stored objects.
        /// </param>
        /// <param name='localTree'>
        /// Local tree.
        /// </param>
        /// <param name='eventMap'>
        /// Event map.
        /// </param>
        public List <AbstractFolderEvent> CreateEvents(
            List <IMappedObject> storedObjects,
            IObjectTree <IFileSystemInfo> localTree,
            Dictionary <string, Tuple <AbstractFolderEvent, AbstractFolderEvent> > eventMap)
        {
            List <AbstractFolderEvent> creationEvents = new List <AbstractFolderEvent>();
            var           parent       = localTree.Item;
            IMappedObject storedParent = null;
            Guid?         guid         = parent.Uuid;

            if (guid != null)
            {
                storedParent = storedObjects.Find(o => o.Guid.Equals((Guid)guid));
            }

            foreach (var child in localTree.Children)
            {
                bool removeStoredMappedChild = false;

                IMappedObject storedMappedChild = this.FindStoredObjectByFileSystemInfo(storedObjects, child.Item);
                if (storedMappedChild != null)
                {
                    var localPath = this.storage.GetLocalPath(storedMappedChild);
                    #if __COCOA__
                    if ((!localPath.Normalize(NormalizationForm.FormD).Equals(child.Item.FullName.Normalize(NormalizationForm.FormD))) && this.fsFactory.IsDirectory(localPath) != null)
                    {
                    #else
                    if ((!localPath.Equals(child.Item.FullName)) && this.fsFactory.IsDirectory(localPath) != null)
                    {
                    #endif
                        // Copied
                        creationEvents.Add(this.GenerateCreatedEvent(child.Item));
                    }
                    else
                    {
                        // Moved, Renamed, Updated or Equal
                        AbstractFolderEvent correspondingRemoteEvent = GetCorrespondingRemoteEvent(eventMap, storedMappedChild);
                        AbstractFolderEvent createdEvent             = this.CreateLocalEventBasedOnStorage(child.Item, storedParent, storedMappedChild);

                        eventMap[storedMappedChild.RemoteObjectId] = new Tuple <AbstractFolderEvent, AbstractFolderEvent>(createdEvent, correspondingRemoteEvent);
                        removeStoredMappedChild = true;
                    }
                }
                else
                {
                    // Added
                    creationEvents.Add(this.GenerateCreatedEvent(child.Item));
                }

                creationEvents.AddRange(this.CreateEvents(storedObjects, child, eventMap));

                if (removeStoredMappedChild)
                {
                    storedObjects.Remove(storedMappedChild);
                }
            }

            return(creationEvents);
        }
Пример #9
0
 public static void ToDotStream <T>(this IObjectTree <T> tree, Stream outputsteam)
 {
     using (var writer = new StreamWriter(outputsteam)) {
         writer.WriteLine("digraph tree {");
         writer.WriteLine("\tgraph [rankdir = \"LR\"];");
         tree.ToDotString(writer);
         writer.WriteLine("}");
     }
 }
Пример #10
0
        //---------------------------------------------------
        public static void SendTrap(IDefinition definition, IObjectTree objectTree)
        {
            CFormSendTrap frm = new CFormSendTrap();

            frm.m_objectTree = objectTree;
            frm.m_definition = definition;
            frm.ShowDialog();
            frm.Dispose();
        }
Пример #11
0
        public static void ViewResult(
            string strInfoRequete,
            Variable variable,
            IMibNavigator navigateur,
            IObjectTree mibTree)
        {
            List <Variable> lst = new List <Variable>();

            lst.Add(variable);
            ViewResult(strInfoRequete, lst, navigateur, mibTree);
        }
Пример #12
0
            public void ToDotString(IObjectTree <T> tree, StreamWriter writer)
            {
                IObjectTree <IMappedObject> t = tree as IObjectTree <IMappedObject>;

                writer.WriteLine(string.Format("\t\"{0}\" [label=\"{1}|<id>ObjectId: {2}|<uuid>UUID: {3}\", shape=record] ;", t.Item.RemoteObjectId, t.Item.Name, t.Item.RemoteObjectId, t.Item.Guid));
                foreach (var child in t.Children ?? new List <IObjectTree <IMappedObject> >())
                {
                    writer.WriteLine(string.Format("\t\"{0}\" -> \"{1}\" ;", t.Item.RemoteObjectId, child.Item.RemoteObjectId));
                    child.ToDotString(writer);
                }
            }
Пример #13
0
 internal RootDefinition(
     IObjectTree arbre,
     uint[] id,
     string name,
     string parent,
     string module,
     string typeString)
     : base(id, name, parent, module, typeString)
 {
     m_arbre = arbre;
 }
Пример #14
0
            public void ToDotString(IObjectTree <T> tree, StreamWriter writer)
            {
                IObjectTree <IFileSystemInfo> t = tree as IObjectTree <IFileSystemInfo>;

                writer.WriteLine(string.Format("\t\"{0}\" [label=\"{1}|<uuid>UUID: {2}\", shape=record] ;", t.Item.FullName, t.Item.Name, t.Item.Uuid.GetValueOrDefault()));
                foreach (var child in t.Children ?? new List <IObjectTree <IFileSystemInfo> >())
                {
                    writer.WriteLine(string.Format("\t\"{0}\" -> \"{1}\" ;", t.Item.FullName, child.Item.FullName));
                    child.ToDotString(writer);
                }
            }
Пример #15
0
 public void ToDotString(IObjectTree <T> tree, StreamWriter writer)
 {
     foreach (var child in tree.Children ?? new List <IObjectTree <T> >())
     {
         writer.Write("\t");
         writer.Write(tree.Item.ToString());
         writer.Write(" -> ");
         writer.Write(child.Item.ToString());
         writer.WriteLine(";");
         child.ToDotString(writer);
     }
 }
Пример #16
0
        public static void ViewResult(
            string strInfoRequete,
            IList <Variable> lstVariables,
            IMibNavigator navigateur,
            IObjectTree mibTree)
        {
            CFormViewSNMPResult form = new CFormViewSNMPResult();

            form.m_listeVariables = lstVariables;
            form.m_strInfoRequete = strInfoRequete;
            form.m_navigateur     = navigateur;
            form.m_mibTree        = mibTree;
            form.Show();
        }
Пример #17
0
        //---------------------------------------------------
        public void InitDialog(IDefinition definition, IObjectTree mibTree)
        {
            m_definition   = definition;
            m_trap         = m_definition.Entity as TrapType;
            m_notification = m_definition.Entity as NotificationType;


            InitComboVersions();
            InitComboGenericCode();

            m_cmbGenericCode.Text = GenericCode.EnterpriseSpecific.ToString();
            m_cmbTrapVersion.Text = VersionCode.V1.ToString();

            string strOID = ObjectIdentifier.Convert(m_definition.GetNumericalForm());

            if (strOID.IndexOf('.') >= 0)
            {
                string strGeneric = strOID.Substring(strOID.LastIndexOf('.') + 1);
                strOID = strOID.Substring(0, strOID.LastIndexOf('.'));
                m_txtSpecificCode.Text = strGeneric;
            }
            m_txtEntreprise.Text = strOID;
            m_txtCommunity.Text  = "public";

            m_panelVariables.SuspendDrawing();
            m_panelVariables.ClearAndDisposeControls();
            List <string> lstVariables = new List <string>();

            if (m_trap != null)
            {
                lstVariables.AddRange(m_trap.Variables);
            }
            else if (m_notification != null)
            {
                lstVariables.AddRange(m_notification.Objects);
            }
            foreach (string strVariable in lstVariables)
            {
                IDefinition defVar = mibTree.Find(strVariable);
                if (defVar != null)
                {
                    CControlTrapVariable ctrl = new CControlTrapVariable();
                    m_panelVariables.Controls.Add(ctrl);
                    ctrl.Dock = DockStyle.Top;
                    ctrl.BringToFront();
                    ctrl.Init(defVar);
                }
            }
            m_panelVariables.ResumeDrawing();
        }
Пример #18
0
        /// <summary>
        /// Creates the local events and returns the creationEvents, the other Events are stored in the eventMap, handled objects are removed from storedObjects
        /// </summary>
        /// <returns>
        /// The local events.
        /// </returns>
        /// <param name='storedObjects'>
        /// Stored objects.
        /// </param>
        /// <param name='localTree'>
        /// Local tree.
        /// </param>
        /// <param name='eventMap'>
        /// Event map.
        /// </param>
        public List<AbstractFolderEvent> CreateEvents(
            List<IMappedObject> storedObjects,
            IObjectTree<IFileSystemInfo> localTree,
            Dictionary<string, Tuple<AbstractFolderEvent, AbstractFolderEvent>> eventMap,
            ISet<IMappedObject> handledStoredObjects)
        {
            List<AbstractFolderEvent> creationEvents = new List<AbstractFolderEvent>();
            var parent = localTree.Item;
            IMappedObject storedParent = null;
            Guid? guid = parent.Uuid;

            if (guid != null) {
                storedParent = storedObjects.Find(o => o.Guid.Equals((Guid)guid));
            }

            foreach (var child in localTree.Children) {
                IMappedObject storedMappedChild = this.FindStoredObjectByFileSystemInfo(storedObjects, child.Item);
                if (storedMappedChild != null) {
                    var localPath = this.storage.GetLocalPath(storedMappedChild);
                    if (localPath == null) {
                        continue;
                    }

                    #if __COCOA__
                    if ((!localPath.Normalize(NormalizationForm.FormD).Equals(child.Item.FullName.Normalize(NormalizationForm.FormD))) && this.fsFactory.IsDirectory(localPath) != null) {
                    #else
                    if ((!localPath.Equals(child.Item.FullName)) && this.fsFactory.IsDirectory(localPath) != null) {
                    #endif
                        // Copied
                        creationEvents.Add(this.GenerateCreatedEvent(child.Item));
                    } else {
                        // Moved, Renamed, Updated or Equal
                        AbstractFolderEvent correspondingRemoteEvent = GetCorrespondingRemoteEvent(eventMap, storedMappedChild);
                        AbstractFolderEvent createdEvent = this.CreateLocalEventBasedOnStorage(child.Item, storedParent, storedMappedChild);

                        eventMap[storedMappedChild.RemoteObjectId] = new Tuple<AbstractFolderEvent, AbstractFolderEvent>(createdEvent, correspondingRemoteEvent);
                        handledStoredObjects.Add(storedMappedChild);
                    }
                } else {
                    // Added
                    creationEvents.Add(this.GenerateCreatedEvent(child.Item));
                }

                creationEvents.AddRange(this.CreateEvents(storedObjects, child, eventMap, handledStoredObjects));
            }

            return creationEvents;
        }
Пример #19
0
        /// <summary>
        /// Builds the trees asynchronously by crawling storage, FileSystem and Server.
        /// </summary>
        /// <returns>
        /// The trees as a struct.
        /// </returns>
        public DescendantsTreeCollection BuildTrees()
        {
            IObjectTree <IMappedObject>       storedTree = null;
            IObjectTree <IFileSystemInfo>     localTree  = null;
            IObjectTree <IFileableCmisObject> remoteTree = null;

            // Request 3 trees in parallel
            Task[] tasks = new Task[3];
            tasks[0] = Task.Factory.StartNew(() => storedTree = this.storage.GetObjectTree());
            tasks[1] = Task.Factory.StartNew(() => localTree = GetLocalDirectoryTree(this.localFolder, this.filter));
            tasks[2] = Task.Factory.StartNew(() => remoteTree = GetRemoteDirectoryTree(this.remoteFolder, this.remoteFolder.GetDescendants(-1), this.filter));

            // Wait until all tasks are finished
            Task.WaitAll(tasks);
            return(new DescendantsTreeCollection(storedTree, localTree, remoteTree));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CmisSync.Lib.Producer.Crawler.DescendantsTreeCollection"/> struct.
        /// </summary>
        /// <param name='storedTree'>
        /// Stored tree.
        /// </param>
        /// <param name='localTree'>
        /// Local tree.
        /// </param>
        /// <param name='remoteTree'>
        /// Remote tree.
        /// </param>
        /// <exception cref='ArgumentNullException'>
        /// <attribution license="cc4" from="Microsoft" modified="false" /><para>The exception that is thrown when a
        /// null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. </para>
        /// </exception>
        public DescendantsTreeCollection(IObjectTree<IMappedObject> storedTree, IObjectTree<IFileSystemInfo> localTree, IObjectTree<IFileableCmisObject> remoteTree) : this() {
            if (storedTree == null) {
                throw new ArgumentNullException("storedTree");
            }

            if (localTree == null) {
                throw new ArgumentNullException("localTree");
            }

            if (remoteTree == null) {
                throw new ArgumentNullException("remoteTree");
            }

            this.StoredTree = storedTree;
            this.LocalTree = localTree;
            this.RemoteTree = remoteTree;
        }
Пример #21
0
        //-------------------------------
        public void NavigateTo(string strModule, string strName)
        {
            //Cherche la définitino
            if (m_root == null)
            {
                return;
            }
            IObjectTree tree = m_root.Tree;

            if (tree == null)
            {
                return;
            }
            IDefinition definition = strModule == null?tree.Find(strName) : tree.Find(strModule, strName);

            NavigateTo(definition);
        }
Пример #22
0
        //-------------------------------------------------------
        private void m_mnuVoirTable_Click(object sender, EventArgs e)
        {
            IDefinition definition = GetCurrent();

            if (definition != null)
            {
                if (m_connexion == null)
                {
                    if (!SetupConnexion())
                    {
                        return;
                    }
                }
                CResultAErreurType <DataTable> result = m_connexion.GetTable(definition.GetNumericalForm());
                if (!result)
                {
                    CFormAfficheErreur.Show(result.Erreur);
                }
                else
                {
                    DataTable   table = result.DataType;
                    IObjectTree tree  = definition.Tree;
                    if (tree != null)
                    {
                        foreach (DataColumn col in table.Columns)
                        {
                            try
                            {
                                uint[]      oid = ObjectIdentifier.Convert(col.ColumnName);
                                IDefinition def = tree.Find(oid);
                                if (def != null)
                                {
                                    col.ColumnName = def.Name;
                                }
                            }
                            catch
                            {
                            }
                        }
                    }

                    CFormVisuTable.ShowTable("Table " + definition.Name, result.DataType);
                }
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CmisSync.Lib.Producer.Crawler.DescendantsTreeCollection"/> struct.
        /// </summary>
        /// <param name='storedTree'>
        /// Stored tree.
        /// </param>
        /// <param name='localTree'>
        /// Local tree.
        /// </param>
        /// <param name='remoteTree'>
        /// Remote tree.
        /// </param>
        /// <exception cref='ArgumentNullException'>
        /// <attribution license="cc4" from="Microsoft" modified="false" /><para>The exception that is thrown when a
        /// null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. </para>
        /// </exception>
        public DescendantsTreeCollection(IObjectTree <IMappedObject> storedTree, IObjectTree <IFileSystemInfo> localTree, IObjectTree <IFileableCmisObject> remoteTree) : this()
        {
            if (storedTree == null)
            {
                throw new ArgumentNullException("storedTree");
            }

            if (localTree == null)
            {
                throw new ArgumentNullException("localTree");
            }

            if (remoteTree == null)
            {
                throw new ArgumentNullException("remoteTree");
            }

            this.StoredTree = storedTree;
            this.LocalTree  = localTree;
            this.RemoteTree = remoteTree;
        }
Пример #24
0
        //-------------------------------------------------------------------------
        private void UpdateVueMib()
        {
            CResultAErreurType <ObjectRegistryBase> result = SnmpMib.GetMibComplete();

            try
            {
                if (result)
                {
                    m_panelMibIncomplete.Visible = false;
                    m_browser.Init(result.DataType.Tree.Root, CTimosApp.DefaultSnmpConnexion);
                }
                else
                {
                    m_panelMibIncomplete.Visible = true;
                    if (SnmpMib.DependancesManquantes.Length > 0)
                    {
                        m_lblMissingDependancies.Text = SnmpMib.DependancesManquantesString;
                    }
                    IModule module = SnmpMib.ModuleMib;
                    if (module != null)
                    {
                        IObjectTree tree = module.GetNewPartialObjectTree();
                        if (tree != null)
                        {
                            m_browser.Init(tree.Root, CTimosApp.DefaultSnmpConnexion);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                m_browser.Visible             = false;
                m_panelMibIncomplete.Visible  = true;
                m_lblMissingDependancies.Text = e.ToString();
            }
        }
Пример #25
0
 internal CMibModuleRootDefinition(IObjectTree arbre, IModule module)
     : base(arbre, new uint[] { 0 }, c_strName, "", module.Name, "")
 {
     m_module = module;
     CreateChildrens();
 }
Пример #26
0
        //---------------------------------------
        public static CTrapHandler CreateFromMib(
            IObjectTree tree,
            IDefinition defNotification,
            CMemoryDb db)
        {
            NotificationType notification = defNotification.Entity as NotificationType;

            if (notification != null)
            {
                CTrapHandler handler = new CTrapHandler(db);
                handler.CreateNew();
                handler.Libelle     = defNotification.Name;
                handler.Description = defNotification.Description;
                foreach (string strObjet in notification.Objects)
                {
                    CTrapField field = new CTrapField();
                    field.Name = strObjet;
                    IDefinition def = tree.Find(strObjet);
                    if (def != null)
                    {
                        field.OID = ObjectIdentifier.Convert(def.GetNumericalForm());
                        handler.AddFieldFromTrap(field);
                    }
                }
                handler.GenericRequestedValue    = GenericCode.EnterpriseSpecific;
                handler.EntrepriseRequestedValue = ObjectIdentifier.Convert(defNotification.GetNumericalForm());
                if (handler.EntrepriseRequestedValue.EndsWith("." + notification.Value.ToString()))
                {
                    handler.EntrepriseRequestedValue = handler.EntrepriseRequestedValue.Remove(handler.EntrepriseRequestedValue.Length - notification.Value.ToString().Length - 1);
                }
                handler.SpecificRequestedValue = notification.Value.ToString();
                return(handler);
            }
            TrapType trap = defNotification.Entity as TrapType;

            if (trap != null)
            {
                CTrapHandler handler = new CTrapHandler(db);
                handler.CreateNew();
                handler.Libelle     = trap.Name;
                handler.Description = trap.Description;
                foreach (string strObjet in trap.Variables)
                {
                    CTrapField field = new CTrapField();
                    field.Name = strObjet;
                    IDefinition def = tree.Find(strObjet);
                    if (def != null)
                    {
                        field.OID = ObjectIdentifier.Convert(def.GetNumericalForm());
                        handler.AddFieldFromTrap(field);
                    }
                }
                handler.GenericRequestedValue    = GenericCode.EnterpriseSpecific;
                handler.EntrepriseRequestedValue = ObjectIdentifier.Convert(defNotification.GetNumericalForm());
                if (handler.EntrepriseRequestedValue.EndsWith("." + trap.Value.ToString()))
                {
                    handler.EntrepriseRequestedValue = handler.EntrepriseRequestedValue.Remove(handler.EntrepriseRequestedValue.Length - trap.Value.ToString().Length - 1);
                }
                handler.SpecificRequestedValue = trap.Value.ToString();
                return(handler);
            }
            return(null);
        }
Пример #27
0
 internal RootDefinition(IObjectTree arbre)
 {
     m_arbre = arbre;
 }
Пример #28
0
 public static void ToDotFile <T>(this IObjectTree <T> tree, string path)
 {
     tree.ToDotFile(new FileInfoWrapper(new FileInfo(path)));
 }
Пример #29
0
 public static void ToDotFile <T>(this IObjectTree <T> tree, IFileInfo file)
 {
     using (var stream = file.Open(FileMode.CreateNew)) {
         tree.ToDotStream(stream);
     }
 }
Пример #30
0
 private static void ToDotString <T>(this IObjectTree <T> tree, StreamWriter writer)
 {
     DotTreeWriterFactory.CreateWriter <T>().ToDotString(tree, writer);
 }