]> Creatis software - bbtk.git/commitdiff
Obtaining the tree boxes related to a sigle box. The classes changed were Utilities...
authorctorres <carlos.torres@creatis.insa-lyon.fr>
Mon, 12 May 2014 07:46:06 +0000 (09:46 +0200)
committerctorres <carlos.torres@creatis.insa-lyon.fr>
Mon, 12 May 2014 07:46:06 +0000 (09:46 +0200)
kernel/src/bbtkBlackBoxDescriptor.cxx
kernel/src/bbtkBlackBoxDescriptor.h
kernel/src/bbtkComplexBlackBoxDescriptor.cxx
kernel/src/bbtkComplexBlackBoxDescriptor.h
kernel/src/bbtkPackage.cxx
kernel/src/bbtkPackage.h
kernel/src/bbtkUtilities.cxx
kernel/src/bbtkUtilities.h

index 7427580fddc8c3384797132c343bb8e80e39db88..9f40f1f1864fee03816b6de076a8fab0c21caa7d 100644 (file)
@@ -315,7 +315,9 @@ namespace bbtk
     return "::" + mTypeName;
   }
   //=========================================================================
+        void BlackBoxDescriptor::GetBoxesInside (NodeTreeC& tree, std::vector<std::string>& temp, int cont){
+               
+       }
   //=========================================================================
   void BlackBoxDescriptor::InsertHtmlHelp ( std::ofstream& s, 
                                            int detail, int level,
index ca8f3554044564f88d31d8b653066affb8af3bf5..25f454436c8f887cb0b4c30855337fa484bf86b7 100644 (file)
@@ -51,7 +51,7 @@
 #include "bbtkBlackBoxOutputDescriptor.h"
 #include <map>
 #include <fstream>
-
+#include "bbtkUtilities.h"
 namespace bbtk
 {
 
@@ -170,7 +170,7 @@ namespace bbtk
     ///
     virtual void Check(bool recursive=true) const;
 
-         
+         virtual void GetBoxesInside (NodeTreeC& tree, std::vector<std::string>& temp, int cont);
          
          /// Sets the name of the script file from which it is defined
          void SetScriptFileName(const std::string& n) { mScriptFileName = n; }
index 20d2ca9a2db3572ab4cf3a9306ba77a55e31fa31..c25819f5003eb9bb497c8f4aa6e7530defb99cbb 100644 (file)
@@ -416,7 +416,7 @@ namespace bbtk
              Package::Pointer p = d->GetPackage();
            
              std::string name = b->second->bbGetTypeName();
-
+                               
              std::string url;
              if (relative_link) 
                 url = p->GetDocRelativeURL();
@@ -666,6 +666,50 @@ size_t  ComplexBlackBoxDescriptor::GetObjectInternalSize() const
     return s;
   }
   //==========================================================================
+void ComplexBlackBoxDescriptor::GetBoxesInside (NodeTreeC& tree, std::vector<std::string>& list, int cont) 
+       {
 
+               std::string name = GetTypeName();
+    std::string descr = GetDescription();
+    std::string author = GetAuthor();
+       list.push_back(name);
+               tree.setData(name);
+   //  list.push_back(descr);
+   //  list.push_back(author);
+               int k = 0;
+    const ComplexBlackBox::BlackBoxMapType& B = mPrototype->bbGetBlackBoxMap();
        
+    if (B.size()) 
+    {
+          std::set<BlackBoxDescriptor::Pointer> pdeps;
+          ComplexBlackBox::BlackBoxMapType::const_iterator b;
+          for ( b = B.begin(); b != B.end(); ++b ) 
+          {
+               BlackBoxDescriptor::Pointer d = b->second->bbGetDescriptor();
+                               
+                               
+             //if (pdeps.find(d) != pdeps.end()) 
+        //    continue;
+             //pdeps.insert(d);
+
+             Package::Pointer p = d->GetPackage();
+             std::string nameBox = b->second->bbGetTypeName();
+                               std::string packageBox = p->GetName();
+                               
+                               tree.insertChild(nameBox);
+
+                               list.push_back(nameBox);
+                               list.push_back(packageBox);
+
+                               d->GetBoxesInside (tree.childs[k],list, cont+1);
+                               k++;
+           }   // for
+
+     } // If B.size
+
+       }
+
+//===================================================
+
+        //==========================================================================
 }
index 34fc4a369f12a234ffc38e730ccb22a3c01e3b23..f9e7f8d8997e61525dc933c96aa4e6b280f8df58 100644 (file)
@@ -51,7 +51,8 @@
 #include "bbtkComplexBlackBoxOutputDescriptor.h"
 #include "bbtkFactory.h"
 #include <fstream>
-
+#include <vector>
+#include "bbtkUtilities.h"
 namespace bbtk
 {
 
@@ -143,7 +144,7 @@ namespace bbtk
                          const std::string& output_dir = "",
                          bool relative_link = false );
     
-
+               void GetBoxesInside (NodeTreeC& tree, std::vector<std::string>& list, int cont);
    ///
     virtual void Check(bool recursive=true) const;
        
@@ -165,7 +166,6 @@ namespace bbtk
   //==========================================================================
 
 
 }
 // namespace bbtk
 #endif
index 9b692c9467ec40b980740d5adf6f36edb16d7401..1b0abc03a0c9fe96193faa090698101105aa6f9c 100644 (file)
@@ -1404,10 +1404,22 @@ namespace bbtk
     return s;
   }
   //==========================================================================
-  
+  void  Package::GetBoxesInside(NodeTreeC& tree, std::vector<std::string>& list, int cont) 
+  {
+               DescriptorMapType::const_iterator i;
+
+               std::vector<std::string>  temp;
+               for (i=mDescriptorMap.begin(); i!=mDescriptorMap.end(); ++i) 
+               {
+                       i->second->GetBoxesInside(tree, list, cont);
+                       list.insert( list.end(), temp.begin(), temp.end() );
+               }    
+  }
+       //==========================================================================
   //==========================================================================
   std::set<Package::WeakPointer> 
   Package::mReleasedDynamicallyLoadedPackages;
   //==========================================================================
+
 }
 
index a6bf8c87d8646cf850da58592736c1e899ff53b3..f39dfc6d7dcb049c1cce7581a94c56a5a78fd398 100644 (file)
@@ -49,6 +49,8 @@
 
 #include "bbtkBlackBox.h"
 #include "bbtkDynamicLibraryHandling.h"
+#include "bbtkUtilities.h"
+#include <vector>
 
 namespace bbtk
 {
@@ -71,6 +73,7 @@ namespace bbtk
                                            const std::string& pkgname,
                                            const std::string& path);
 
+       void  GetBoxesInside(NodeTreeC& tree, std::vector<std::string>& list, int cont);
     /// NOTE : All the static methods below for package destruction
     /// are not member because they can cause the package death 
     /// and thus close the dynamic library from which it has been loaded.
index 8cd21b8db5dafabbe02ae8ac621f315ec2fa61e0..58d4b7d075ecfc99762322377e71949e2fd320f3 100644 (file)
@@ -767,6 +767,87 @@ namespace bbtk
   }
   //=========================================================================
 
+//TAD Arbol CFT
 
 
+//---------NodeTree---------------
+
+NodeTreeC::NodeTreeC()
+{
+       
+}
+
+NodeTreeC::NodeTreeC(std::string _data)
+{
+       data = _data;
+}
+
+NodeTreeC::~NodeTreeC()
+{
+
+}
+
+void NodeTreeC::insertChild(std::string _data)
+{
+       NodeTreeC temp = NodeTreeC(_data);
+       childs.push_back(temp);
+}
+
+void NodeTreeC::treeTour()
+{
+       std::cout <<"data "<< data << std::endl;
+       std::cout <<"size "<< childs.size() << std::endl;
+       for(int i = 0 ; i < childs.size(); i++)
+       {
+               childs[i].treeTour();           
+       }
+}
+
+void NodeTreeC::setData(std::string _data)
+{
+       data = _data;
+}
+
+
+//---------Tree------------
+/*
+TreeC::TreeC()
+{
+
+}
+
+TreeC::TreeC(std::string _data)
+{
+       root = NodeTreeC(_data);
+}
+
+TreeC::~TreeC()
+{
+
+}
+
+void TreeC::insertRoot(std::string _data)
+{
+       NodeTreeC temp = NodeTreeC(_data);
+       root = temp;
+}
+
+void TreeC::treeTour()
+{
+       root.treeTour();
+}
+
+void TreeC::insertData(std::string _data)
+{
+       
+}
+
+TreeC* TreeC::getSubTree()
+{
+       TreeC temp;
+       temp.root = root.childs[0];
+       return ;
+}
+*/
+
 }
index 5a68f5f8b9cf379648b2c4d9ed687faf827d581c..e860fea3f9edb69528e62b7ddb68d241d4b0affa 100644 (file)
@@ -201,7 +201,34 @@ namespace bbtk
     
     
   };
-
+class NodeTreeC
+{
+public:
+       std::string data;
+       std::vector<NodeTreeC> childs;
+
+       NodeTreeC();
+       NodeTreeC(std::string _data);
+       ~NodeTreeC();
+       void insertChild(std::string _data);
+       void treeTour();
+       void setData(std::string _data);
+};
+/*
+class TreeC
+{
+public:
+       NodeTreeC root;
+
+  TreeC();
+       TreeC(std::string _data);
+       ~TreeC();
+       void insertRoot(std::string _data);
+       void treeTour();
+       void insertData(std::string _data);
+       TreeC getSubTree();
+};
+ */
   
 } // namespace bbtk