Logo ROOT  
Reference Guide
TGrid.cxx
Go to the documentation of this file.
1// @(#)root/net:$Id$
2// Author: Fons Rademakers 3/1/2002
3
4/*************************************************************************
5 * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12//////////////////////////////////////////////////////////////////////////
13// //
14// TGrid //
15// //
16// Abstract base class defining interface to common GRID services. //
17// //
18// To open a connection to a GRID use the static method Connect(). //
19// The argument of Connect() is of the form: //
20// <grid>[://<host>][:<port>], e.g. alien://alice.cern.ch //
21// Depending on the <grid> specified an appropriate plugin library //
22// will be loaded which will provide the real interface. //
23// //
24// Related classes are TGridResult. //
25// //
26//////////////////////////////////////////////////////////////////////////
27
28#include "TGrid.h"
29#include "TROOT.h"
30#include "TPluginManager.h"
31#include "TError.h"
32
34
35
37
38////////////////////////////////////////////////////////////////////////////////
39/// The grid should be of the form: <grid>://<host>[:<port>],
40/// e.g.: alien://alice.cern.ch
41/// The uid is the username and pw the password that should be used for
42/// the connection. Depending on the <grid> the shared library (plugin)
43/// for the selected system will be loaded. When the connection could not
44/// be opened 0 is returned. For AliEn the supported options are:
45/// -domain=<domain name>
46/// -debug=<debug level from 1 to 10>
47/// Example: "-domain=cern.ch -debug=5"
48
49TGrid *TGrid::Connect(const char *grid, const char *uid, const char *pw,
50 const char *options)
51{
53 TGrid *g = 0;
54
55 if (!grid) {
56 ::Error("TGrid::Connect", "no grid specified");
57 return 0;
58 }
59 if (!uid)
60 uid = "";
61 if (!pw)
62 pw = "";
63 if (!options)
64 options = "";
65
66 if ((h = gROOT->GetPluginManager()->FindHandler("TGrid", grid))) {
67 if (h->LoadPlugin() == -1)
68 return 0;
69 g = (TGrid *) h->ExecPlugin(4, grid, uid, pw, options);
70 }
71
72 return g;
73}
#define g(i)
Definition: RSha256.hxx:105
#define h(i)
Definition: RSha256.hxx:106
#define ClassImp(name)
Definition: Rtypes.h:364
TGrid * gGrid
Definition: TGrid.cxx:33
#define gROOT
Definition: TROOT.h:404
Definition: TGrid.h:44
static TGrid * Connect(const char *grid, const char *uid=0, const char *pw=0, const char *options=0)
The grid should be of the form: <grid>://<host>[:<port>], e.g.
Definition: TGrid.cxx:49
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:893