// register_catalog_web_pages.cxx #include "dial_webcat/register_catalog_web_pages.h" #include #include "dial_ws/DialWs.h" #include "dataset_catalog/DatasetSelectionCatalog.h" #include "dataset_base/DatasetRepository.h" #include "dial_task/TaskRepository.h" #include "dial_task/TaskSelectionCatalog.h" #include "dial_app/ApplicationRepository.h" #include "dial_app/ApplicationSelectionCatalog.h" #include "dial_job/JobRepository.h" using std::string; using dset::DatasetSelectionCatalog; using dset::DatasetRepository; using dial::ApplicationRepository; using dial::ApplicationSelectionCatalog; using dial::TaskRepository; using dial::TaskSelectionCatalog; using dial::JobRepository; using dial::DialWs; typedef dial::Job::UrlMap UrlMap; //********************************************************************** // Local definitions. //********************************************************************** namespace { //********************************************************************** // Map of URL's. const UrlMap& urls() { static UrlMap val; if ( val.size() == 0 ) { val["jobs"] = "job_repository"; val["subjobs"] = "job_repository"; val["applications"] = "application_repository"; val["tasks"] = "task_repository"; val["datasets"] = "dataset_repository"; } return val; } //********************************************************************** // Create web page for application repository. void application_repository_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find application repository. ApplicationRepository& rep = ApplicationRepository::default_instance(); if ( ! rep.is_valid() ) { Text trep; trep.append("No application repository"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; string baseurl = "application_repository"; wp = rep.web_page(baseurl, entry); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for task repository. void task_repository_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find task repository. TaskRepository& rep = TaskRepository::default_instance(); if ( ! rep.is_valid() ) { Text trep; trep.append("No task repository"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; string baseurl = "task_repository"; wp = rep.web_page(baseurl, entry); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for dataset repository. void dataset_repository_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find dataset repository. DatasetRepository& rep = DatasetRepository::default_instance(); if ( ! rep.is_valid() ) { Text trep; trep.append("No dataset repository"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; string baseurl = "dataset_repository"; wp = rep.web_page(baseurl, entry); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for job repository. void job_repository_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find job repository. JobRepository& rep = JobRepository::default_instance(); if ( ! rep.is_valid() ) { Text trep; trep.append("No job repository"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; string baseurl = "job_repository"; wp = rep.web_page(urls(), entry, &rep); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for application selection catalog void application_selection_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find catalog. ApplicationSelectionCatalog& cat = ApplicationSelectionCatalog::default_instance(); if ( ! cat.is_valid() ) { Text trep; trep.append("No application selection catalog"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; wp = cat.web_page(page, entry, "application_repository?aid="); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for task selection catalog void task_selection_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find catalog. TaskSelectionCatalog& cat = TaskSelectionCatalog::default_instance(); if ( ! cat.is_valid() ) { Text trep; trep.append("No task selection catalog"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; wp = cat.web_page(page, entry, "task_repository?tid="); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** // Create web page for dataset selection catalog void dataset_selection_web_page(string page, string entry) { static string savepage = page; assert( page == savepage ); // Find catalog. DatasetSelectionCatalog& cat = DatasetSelectionCatalog::default_instance(); if ( ! cat.is_valid() ) { Text trep; trep.append("No dataset selection catalog"); DialWs::insert_web_page(page, entry, trep); return; } // Register web page. Text wp; wp = cat.web_page(page, entry, "dataset_repository?did="); DialWs::insert_web_page(page, entry, wp); } //********************************************************************** } // end unnamed namespace. //********************************************************************** // Function. //********************************************************************** int dial::register_catalog_web_pages() { DialWs::insert_web_page_update("application_repository", application_repository_web_page); DialWs::insert_web_page_update("task_repository", task_repository_web_page); DialWs::insert_web_page_update("dataset_repository", dataset_repository_web_page); DialWs::insert_web_page_update("job_repository", job_repository_web_page); DialWs::insert_web_page_update("application_selection", application_selection_web_page); DialWs::insert_web_page_update("task_selection", task_selection_web_page); DialWs::insert_web_page_update("dataset_selection", dataset_selection_web_page); return 0; }; //**********************************************************************