XrdCmsRouting.cc

Go to the documentation of this file.
00001 /******************************************************************************/
00002 /*                                                                            */
00003 /*                      X r d C m s R o u t i n g . c c                       */
00004 /*                                                                            */
00005 /* (c) 2007 by the Board of Trustees of the Leland Stanford, Jr., University  */
00006 /*                            All Rights Reserved                             */
00007 /*   Produced by Andrew Hanushevsky for Stanford University under contract    */
00008 /*              DE-AC02-76-SFO0515 with the Department of Energy              */
00009 /******************************************************************************/
00010 
00011 //       $Id: XrdCmsRouting.cc 30949 2009-11-02 16:37:58Z ganis $
00012 
00013 const char *XrdCmsRoutingCVSID = "$Id: XrdCmsRouting.cc 30949 2009-11-02 16:37:58Z ganis $";
00014 
00015 #include "XrdCms/XrdCmsNode.hh"
00016 #include "XrdCms/XrdCmsRouting.hh"
00017 
00018 using namespace XrdCms;
00019 
00020 /******************************************************************************/
00021 /*                        G l o b a l   O b j e c t s                         */
00022 /******************************************************************************/
00023 /******************************************************************************/
00024 /*                          R o u t e r   T a b l e                           */
00025 /******************************************************************************/
00026   
00027 namespace XrdCms
00028 {
00029 XrdCmsRouter::theRoute initRouter[] =
00030       {{kYR_login,   "login",  static_cast<XrdCmsRouter::NodeMethod_t>(0)},
00031        {kYR_chmod,   "chmod",  &XrdCmsNode::do_Chmod},
00032        {kYR_locate,  "locate", &XrdCmsNode::do_Locate},
00033        {kYR_mkdir,   "mkdir",  &XrdCmsNode::do_Mkdir},
00034        {kYR_mkpath,  "mkpath", &XrdCmsNode::do_Mkpath},
00035        {kYR_mv,      "mv",     &XrdCmsNode::do_Mv},
00036        {kYR_prepadd, "prepadd",&XrdCmsNode::do_PrepAdd},
00037        {kYR_prepdel, "prepdel",&XrdCmsNode::do_PrepDel},
00038        {kYR_rm,      "rm",     &XrdCmsNode::do_Rm},
00039        {kYR_rmdir,   "rmdir",  &XrdCmsNode::do_Rmdir},
00040        {kYR_select,  "select", &XrdCmsNode::do_Select},
00041        {kYR_statfs,  "statfs", &XrdCmsNode::do_StatFS},
00042        {kYR_stats,   "stats",  &XrdCmsNode::do_Stats},
00043        {kYR_trunc,   "trunc",  &XrdCmsNode::do_Trunc},
00044 /* Server */
00045        {kYR_avail,   "avail",  &XrdCmsNode::do_Avail},
00046        {kYR_disc,    "disc",   &XrdCmsNode::do_Disc},
00047        {kYR_gone,    "gone",   &XrdCmsNode::do_Gone},
00048        {kYR_have,    "have",   &XrdCmsNode::do_Have},
00049        {kYR_load,    "load",   &XrdCmsNode::do_Load},
00050        {kYR_ping,    "ping",   &XrdCmsNode::do_Ping},
00051        {kYR_pong,    "pong",   &XrdCmsNode::do_Pong},
00052        {kYR_space,   "space",  &XrdCmsNode::do_Space},
00053        {kYR_state,   "state",  &XrdCmsNode::do_State},
00054        {kYR_status,  "status", &XrdCmsNode::do_Status},
00055        {kYR_try,     "try",    &XrdCmsNode::do_Try},
00056        {kYR_update,  "update", &XrdCmsNode::do_Update},
00057        {kYR_usage,   "usage",  &XrdCmsNode::do_Usage},
00058        {0,           0,        0}};
00059 }
00060 
00061 // Request Name and Method Routing Table
00062 //
00063    XrdCmsRouter    XrdCms::Router(initRouter);
00064 
00065 /******************************************************************************/
00066 /*              R e d i r e c t o r   R o u t i n g   T a b l e               */
00067 /******************************************************************************/
00068   
00069 namespace XrdCms
00070 {
00071 XrdCmsRouting::theRouting initRDRrouting[] =
00072      {{kYR_chmod,   XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00073                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00074       {kYR_locate,  XrdCmsRouting::AsyncQ0
00075                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00076       {kYR_mkdir,   XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00077                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00078       {kYR_mkpath,  XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00079                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00080       {kYR_mv,      XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00081                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00082       {kYR_prepadd, XrdCmsRouting::isSync
00083                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00084       {kYR_prepdel, XrdCmsRouting::isSync    | XrdCmsRouting::Forward
00085                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00086       {kYR_rm,      XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00087                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00088       {kYR_rmdir,   XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00089                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00090       {kYR_select,  XrdCmsRouting::AsyncQ0
00091                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00092       {kYR_statfs,  XrdCmsRouting::AsyncQ0
00093                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00094       {kYR_stats,   XrdCmsRouting::AsyncQ0
00095                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00096       {kYR_trunc,   XrdCmsRouting::AsyncQ1   | XrdCmsRouting::Forward
00097                   | XrdCmsRouting::Repliable | XrdCmsRouting::Delayable},
00098       {kYR_update,  XrdCmsRouting::isSync    | XrdCmsRouting::noArgs
00099                   | XrdCmsRouting::Repliable},
00100       {0,           0}};
00101 }
00102 
00103 // Redirector routing by valid request
00104 //
00105    XrdCmsRouting    XrdCms::rdrVOps(initRDRrouting);
00106 
00107 /******************************************************************************/
00108 /*                R e s p o n s e   R o u t i n g   T a b l e                 */
00109 /******************************************************************************/
00110   
00111 namespace XrdCms
00112 {
00113 XrdCmsRouting::theRouting initRSProuting[] =
00114      {{kYR_avail,   XrdCmsRouting::isSync},
00115       {kYR_disc,    XrdCmsRouting::isSync | XrdCmsRouting::noArgs},
00116       {kYR_gone,    XrdCmsRouting::isSync},
00117       {kYR_have,    XrdCmsRouting::AsyncQ0},
00118       {kYR_load,    XrdCmsRouting::isSync},
00119       {kYR_pong,    XrdCmsRouting::isSync | XrdCmsRouting::noArgs},
00120       {kYR_status,  XrdCmsRouting::isSync | XrdCmsRouting::noArgs},
00121       {0,           0}};
00122 }
00123 
00124 // Response routing by valid request
00125 //
00126    XrdCmsRouting    XrdCms::rspVOps(initRSProuting);
00127 
00128 /******************************************************************************/
00129 /*                  S e r v e r   R o u t i n g   T a b l e                   */
00130 /******************************************************************************/
00131   
00132 namespace XrdCms
00133 {
00134 XrdCmsRouting::theRouting initSRVrouting[] =
00135      {{kYR_chmod,   XrdCmsRouting::AsyncQ1},
00136       {kYR_disc,    XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00137       {kYR_mkdir,   XrdCmsRouting::AsyncQ1},
00138       {kYR_mkpath,  XrdCmsRouting::AsyncQ1},
00139       {kYR_mv,      XrdCmsRouting::AsyncQ1},
00140       {kYR_ping,    XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00141       {kYR_prepadd, XrdCmsRouting::isSync},
00142       {kYR_prepdel, XrdCmsRouting::isSync},
00143       {kYR_rm,      XrdCmsRouting::AsyncQ1},
00144       {kYR_rmdir,   XrdCmsRouting::AsyncQ1},
00145       {kYR_space,   XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00146       {kYR_state,   XrdCmsRouting::AsyncQ0},
00147       {kYR_stats,   XrdCmsRouting::AsyncQ0 | XrdCmsRouting::noArgs},
00148       {kYR_trunc,   XrdCmsRouting::AsyncQ1},
00149       {kYR_try,     XrdCmsRouting::isSync},
00150       {kYR_usage,   XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00151       {0,           0}};
00152 }
00153   
00154 // Server routing by valid request
00155 //
00156    XrdCmsRouting    XrdCms::srvVOps(initSRVrouting);
00157 
00158 /******************************************************************************/
00159 /*              S u p e r v i s o r   R o u t i n g   T a b l e               */
00160 /******************************************************************************/
00161   
00162 namespace XrdCms
00163 {
00164 XrdCmsRouting::theRouting initSUProuting[] =
00165      {{kYR_chmod,   XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00166       {kYR_disc,    XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00167       {kYR_mkdir,   XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00168       {kYR_mkpath,  XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00169       {kYR_mv,      XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00170       {kYR_ping,    XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00171       {kYR_prepadd, XrdCmsRouting::isSync},
00172       {kYR_prepdel, XrdCmsRouting::isSync  | XrdCmsRouting::Forward},
00173       {kYR_rm,      XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00174       {kYR_rmdir,   XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00175       {kYR_space,   XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00176       {kYR_state,   XrdCmsRouting::isSync},
00177       {kYR_stats,   XrdCmsRouting::AsyncQ0 | XrdCmsRouting::noArgs},
00178       {kYR_trunc,   XrdCmsRouting::AsyncQ1 | XrdCmsRouting::Forward},
00179       {kYR_try,     XrdCmsRouting::isSync},
00180       {kYR_usage,   XrdCmsRouting::isSync  | XrdCmsRouting::noArgs},
00181       {0,           0}};
00182 }
00183   
00184 // Supervisor routing by valid request
00185 //
00186    XrdCmsRouting    XrdCms::supVOps(initSUProuting);

Generated on Tue Jul 5 14:46:31 2011 for ROOT_528-00b_version by  doxygen 1.5.1