diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h')
-rw-r--r-- | TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h | 56 |
1 files changed, 54 insertions, 2 deletions
diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h b/TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h index 33f15ba0362..4fb23a46f19 100644 --- a/TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/Containers_Info_Map.h @@ -1,5 +1,5 @@ /** - * + * * @file Containers_Info_Map.h * @author Gan Deng <dengg@dre.vanderbilt.edu> * @@ -15,6 +15,10 @@ #include "ace/Null_Mutex.h" #include "ace/Hash_Map_Manager.h" + +//added for the HTTP support +#include "ace/Message_Block.h" //for ACE_Message_Block + #include "ciao/DeploymentC.h" #include "ace/SString.h" #include "CIAO_NAM_Export.h" @@ -59,7 +63,7 @@ namespace CIAO //Deployment::ContainerImplementationInfos_var containers_info_; - typedef + typedef ACE_Hash_Map_Manager_Ex <ACE_CString, Deployment::ContainerImplementationInfo *, ACE_Hash<ACE_CString>, @@ -74,6 +78,54 @@ namespace CIAO /// shared components list, passed in from NodeImplementationInfoHandler /// class. Deployment::ComponentPlans shared_components_; + + /**------------------------------------------------------------------- + * HTTP capability + * @author Stoyan Paunov + * + * Purpose: Adding the HTTP access code which will resove + * any references to HTTP URLs + */ + protected: + + //directory in which to download the libraries obtained via HTTP + ACE_CString HTTP_DOWNLOAD_PATH; + + /// This function checks if the HTTP_DOWNLOAD_PATH is + /// in the library load path + void + update_loader_path (void); + + /// This function resolves any http location references + /// in the name of the implementation artifacts + /// It returns true on success and false on failure + + bool + resolve_http_reference (const char* location, + ACE_CString &name); + + /// function to retvieve a file via HTTP + /// stores the file in the passed preallocated ACE_Message_Block + /// returns 1 on success + /// 0 on error + + bool + retrieve_via_HTTP (const char* URL, + ACE_Message_Block &mb); + + /// function that writes out a file to a specified location on the hand disk + /// returns 1 on success + /// 0 on already exists and replace == false + /// 0 on error + + bool + write_to_disk (const char* full_path, + ACE_Message_Block& mb, + bool replace = true); + + /// TODO: Fuction to remove the downloaded library to ensure + /// consisterncy in future runs + }; } |