]> Creatis software - bbtk.git/commitdiff
#2536 BBTK Feature New Normal - wt-version Package
authorEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Fri, 14 Aug 2015 16:27:58 +0000 (18:27 +0200)
committerEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Fri, 14 Aug 2015 16:27:58 +0000 (18:27 +0200)
kernel/appli/bbi/bbiWeb.cxx
kernel/src/bbtkFactory.cxx
kernel/src/bbtkFactory.h

index 360b135d45f5d1c595abf6b60992d5e525df000d..55ce986f1cb27620bb58d70384b73765cf3b25db 100644 (file)
 int main(int argc, char* argv[])
 {
 
- printf("bbiWeb...1 argc=%d \n",argc);
+ printf("bbiWeb...A argc=%d \n",argc);
+
 //bbtk::MessageManager::SetMessageLevel("all",9);
 printf("bbiWeb: [0]: %s \n",argv[0]);
 printf("bbiWeb: [1]: %s \n",argv[1]);
- printf("bbiWeb...2\n");
+printf("bbiWeb: [2]: %s \n",argv[2]);
+printf("bbiWeb: [3]: %s \n",argv[3]);
+printf("bbiWeb: [4]: %s \n",argv[4]);
+ printf("bbiWeb...B\n");
 
 
   bbtk::WtBlackBox::wtServerData::argc = argc;
@@ -54,13 +58,24 @@ printf("bbiWeb: [1]: %s \n",argv[1]);
  
 
   bbtk::Interpreter::Pointer I = bbtk::Interpreter::New();
- printf("bbiWeb...3\n");
-//  std::string f(argv[1]);
-//  std::string f("/var/www/testwtdbg/docroot/.bbtk/tmp/testwt.bbs");
-  std::string f("/var/www/testwtdbg/docroot/.bbtk/tmp/demoPresentacion1Boton02.bbs");
- printf("bbiWeb...4\n");
-  I->InterpretFile(f);
- printf("bbiWeb...5\n");
+ printf("bbiWeb...C\n");
+
+  std::string fileName = argv[0];
+  std::size_t pos      = fileName.find("_");     
+  fileName             = fileName.substr (pos+1);      
+  pos                  = fileName.find(".wt");
+  fileName             = fileName.erase (pos);  
+  fileName             = "bbs/"+fileName;
+
+printf("bbiWeb fileName %s\n", fileName.c_str() );
+//  std::string fileName("/var/www/testwtdbg/docroot/.bbtk/tmp/demoPresentacion1Boton02.bbs");
+
+
+
+
+ printf("bbiWeb...D\n");
+  I->InterpretFile(fileName);
+ printf("bbiWeb...E\n");
 
   return 0;
 }
index 669a9fbc7cfe05bc69a60627b554cec70568a28e..d541db35b9203e89b984a63daa7c2dd1a7760eb5 100644 (file)
@@ -548,23 +548,47 @@ namespace bbtk
 
     bbtkDebugDecTab("kernel",9);
   }
-  //===================================================================
   
 
-//     ups3 EED borrame        
+  //===================================================================
        std::string Factory::GetPackageNameOfaBlackBox(std::string boxType)
        {
-               std::string result="<void bbtk package name>";
+               std::string packageName="<void bbtk package name>";
                PackageMapType::const_iterator i;
-               for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i )
-               {
-                       if ( i->second->ifBoxExist( boxType ) == true)
+
+               std::size_t found = boxType.find(":");
+               if (found!=std::string::npos)
+               {
+                       packageName     = boxType.substr(0,found);
+               } else {
+                       for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i )
                        {
-                               result = i->first;
-                       }
-               }
-               return result;
+                               if ( i->second->ifBoxExist( boxType ) == true)
+                               {
+                                       packageName = i->first;
+                               } // if ifBoxExist
+                       } // for i
+
+               } // if found
+               return packageName;
        }
+
+  //===================================================================
+       std::string Factory::GetTypeNameOfaBlackBox(std::string boxType)
+       {
+               std::string typeName="<void bbtk type name>";
+
+               std::size_t found = boxType.find(":");
+               if (found!=std::string::npos)
+               {
+                       typeName                = boxType.substr(found+1);
+               } else {
+                       typeName=boxType;
+               } // if found
+               return typeName;
+       }
+
+
        
        
   //===================================================================
@@ -572,20 +596,52 @@ namespace bbtk
   BlackBox::Pointer Factory::NewBlackBox(const std::string& type, 
                                  const std::string& name) const
   {
-    bbtkDebugMessageInc("kernel",7,"Factory::NewBlackBox(\""
+       bbtkDebugMessageInc("kernel",7,"Factory::NewBlackBox(\""
                         <<type<<"\",\""<<name<<"\")"<<std::endl);
 
     BlackBox::Pointer b; 
     PackageMapType::const_iterator i;
-    for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i )
-      {
-      b = i->second->NewBlackBox(type,name);
-      if (b) break; 
-      }
+
+       std::string tmp = type;
+       std::string packageName = ((bbtk::Factory*)this)->GetPackageNameOfaBlackBox(tmp);
+       std::string type2               = ((bbtk::Factory*)this)->GetTypeNameOfaBlackBox(tmp);
+       i = mPackageMap.find(packageName);
+       if (i != mPackageMap.end())
+       {
+               b = i->second->NewBlackBox(type2,name);
+       } else {
+               b =BlackBox::Pointer();
+       }
+
+/*
+       std::size_t found = type.find(":");
+       if (found!=std::string::npos)
+       {
+               std::string packageName = type.substr(0,found);
+               std::string type2               = type.substr(found+1);
+               i = mPackageMap.find(packageName);
+               if (i != mPackageMap.end())
+               {
+               b = i->second->NewBlackBox(type2,name);
+               } else {
+                       b =BlackBox::Pointer();
+               }
+       } else {
+       for (i = mPackageMap.begin(); i!=mPackageMap.end(); ++i )
+       {
+               b = i->second->NewBlackBox(type,name);
+               if (b) break; 
+       } // for i
+
+       } // if found :
+*/
+
+
     if (!b) 
-      {
-       bbtkError("black box type \""<<type<<"\" unknown");
-      } 
+    {
+       bbtkError("black box type \""<<type<<"\" unknown");
+    }  // if !b
+
 
     bbtkDebugDecTab("kernel",7);
     return b;
index 8c80ec78da1043d48fe1d645e23b2dea5c109d4d..aab5c9494e433ef7f7ea191034bf7ccba1a4019f 100644 (file)
@@ -161,12 +161,14 @@ namespace bbtk
     /// Gets the executer who created the factory (if any) - const
     //    const Executer::Pointer GetExecuter() const { return mExecuter.lock(); }
 
-         std::string GetPackageNameOfaBlackBox(std::string boxType);
+       std::string GetPackageNameOfaBlackBox(std::string boxType);
+       std::string GetTypeNameOfaBlackBox(std::string boxType);
 
 
   private:
 
 
+
     /// The map of packages
     PackageMapType mPackageMap;
 
@@ -179,6 +181,8 @@ namespace bbtk
     void CloseAllPackages();
     void ClosePackage(PackageMapType::iterator& i);
 
+
+
   };
   // class Factory