Logo ROOT   6.07/09
Reference Guide
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
THttpServer Class Reference

Definition at line 30 of file THttpServer.h.

Public Member Functions

 THttpServer (const char *engine="civetweb:8080")
 constructor More...
 
virtual ~THttpServer ()
 destructor delete all http engines and sniffer More...
 
void AddLocation (const char *prefix, const char *path)
 add files location, which could be used in the server one could map some system folder to the server like AddLocation("mydir/","/home/user/specials"); Than files from this directory could be addressed via server like http://localhost:8080/mydir/myfile.root More...
 
Bool_t CreateEngine (const char *engine)
 factory method to create different http engines At the moment two engine kinds are supported: civetweb (default) and fastcgi Examples: "civetweb:8080" or "http:8080" or ":8080" - creates civetweb web server with http port 8080 "fastcgi:9000" - creates fastcgi server with port 9000 "dabc:1237" - create DABC server with port 1237 (only available with DABC installed) "dabc:master_host:port" - attach to DABC master, running on master_host:port (only available with DABC installed) More...
 
Bool_t CreateItem (const char *fullname, const char *title)
 
Bool_t ExecuteHttp (THttpCallArg *arg)
 Execute HTTP request. More...
 
const char * GetItemField (const char *fullname, const char *name)
 
TRootSnifferGetSniffer () const
 
const char * GetTopName () const
 
Bool_t Hide (const char *fullname, Bool_t hide=kTRUE)
 hides folder or element from web gui More...
 
Bool_t IsAnyEngine () const
 
Bool_t IsFileRequested (const char *uri, TString &res) const
 Check if file is requested, thread safe. More...
 
Bool_t IsReadOnly () const
 returns read-only mode More...
 
void ProcessRequests ()
 Process submitted requests, must be called from main thread. More...
 
Bool_t Register (const char *subfolder, TObject *obj)
 Register object in subfolder. More...
 
Bool_t RegisterCommand (const char *cmdname, const char *method, const char *icon=0)
 Register command which can be executed from web interface. More...
 
void Restrict (const char *path, const char *options)
 Restrict access to specified object. More...
 
void SetDefaultPage (const char *filename)
 Set file name of HTML page, delivered by the server when http address is opened in the browser. More...
 
void SetDrawPage (const char *filename)
 Set file name of HTML page, delivered by the server when objects drawing page is requested from the browser By default, $ROOTSYS/etc/http/files/draw.htm page is used When empty filename is specified, default page will be used. More...
 
Bool_t SetIcon (const char *fullname, const char *iconname)
 set name of icon, used in browser together with the item More...
 
Bool_t SetItemField (const char *fullname, const char *name, const char *value)
 
void SetJSROOT (const char *location)
 Set location of JSROOT to use with the server One could specify address like: https://root.cern.ch/js/3.3/ http://web-docs.gsi.de/~linev/js/3.3/ This allows to get new JSROOT features with old server, reduce load on THttpServer instance, also startup time can be improved When empty string specified (default), local copy of JSROOT is used (distributed with ROOT) More...
 
void SetReadOnly (Bool_t readonly)
 Set read-only mode for the server (default on) In read-only server is not allowed to change any ROOT object, registered to the server Server also cannot execute objects method via exe.json request. More...
 
void SetSniffer (TRootSniffer *sniff)
 Set TRootSniffer to the server Server takes ownership over sniffer. More...
 
void SetTimer (Long_t milliSec=100, Bool_t mode=kTRUE)
 create timer which will invoke ProcessRequests() function periodically Timer is required to perform all actions in main ROOT thread Method arguments are the same as for TTimer constructor By default, sync timer with 100 ms period is created More...
 
void SetTopName (const char *top)
 
Bool_t Unregister (TObject *obj)
 Unregister object. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
virtual ~TNamed ()
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Member Functions

static const char * GetMimeType (const char *path)
 Guess mime type base on file extension. More...
 
static char * ReadFileContent (const char *filename, Int_t &len)
 Reads content of file from the disk. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Member Functions

virtual void ProcessRequest (THttpCallArg *arg)
 submitted arguments More...
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Static Protected Member Functions

static Bool_t VerifyFilePath (const char *fname)
 Checked that filename does not contains relative path below current directory Used to prevent access to files below current directory. More...
 

Protected Attributes

TList fCallArgs
 mutex to protect list with arguments More...
 
TString fDefaultPage
 list of local directories, which could be accessed via server More...
 
TString fDefaultPageCont
 file name for default page name More...
 
TString fDrawPage
 content of the file content More...
 
TString fDrawPageCont
 file name for drawing of single element More...
 
TList fEngines
 
TString fJSROOT
 name of top folder, default - "ROOT" More...
 
TString fJSROOTSYS
 id of the main ROOT process More...
 
TList fLocations
 location of external JSROOT files More...
 
Long_t fMainThrdId
 sniffer provides access to ROOT objects hierarchy More...
 
std::mutex fMutex
 content of draw page More...
 
TRootSnifferfSniffer
 timer used to access main thread More...
 
THttpTimer * fTimer
 engines which runs http server More...
 
TString fTopName
 location of local JSROOT files More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Additional Inherited Members

- Public Types inherited from TObject
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 

#include <THttpServer.h>

Inheritance diagram for THttpServer:
[legend]

Constructor & Destructor Documentation

THttpServer::THttpServer ( const char *  engine = "civetweb:8080")

constructor

Definition at line 111 of file THttpServer.cxx.

THttpServer::~THttpServer ( )
virtual

destructor delete all http engines and sniffer

Definition at line 210 of file THttpServer.cxx.

Member Function Documentation

void THttpServer::AddLocation ( const char *  prefix,
const char *  path 
)

add files location, which could be used in the server one could map some system folder to the server like AddLocation("mydir/","/home/user/specials"); Than files from this directory could be addressed via server like http://localhost:8080/mydir/myfile.root

Definition at line 253 of file THttpServer.cxx.

Bool_t THttpServer::CreateEngine ( const char *  engine)

factory method to create different http engines At the moment two engine kinds are supported: civetweb (default) and fastcgi Examples: "civetweb:8080" or "http:8080" or ":8080" - creates civetweb web server with http port 8080 "fastcgi:9000" - creates fastcgi server with port 9000 "dabc:1237" - create DABC server with port 1237 (only available with DABC installed) "dabc:master_host:port" - attach to DABC master, running on master_host:port (only available with DABC installed)

Definition at line 323 of file THttpServer.cxx.

Bool_t THttpServer::CreateItem ( const char *  fullname,
const char *  title 
)

Definition at line 827 of file THttpServer.cxx.

Bool_t THttpServer::ExecuteHttp ( THttpCallArg arg)

Execute HTTP request.

Executes http request, specified in THttpCallArg structure Method can be called from any thread Actual execution will be done in main ROOT thread, where analysis code is running.

Definition at line 458 of file THttpServer.cxx.

const char * THttpServer::GetItemField ( const char *  fullname,
const char *  name 
)

Definition at line 841 of file THttpServer.cxx.

const char * THttpServer::GetMimeType ( const char *  path)
static

Guess mime type base on file extension.

Returns MIME type base on file extension.

Definition at line 849 of file THttpServer.cxx.

TRootSniffer* THttpServer::GetSniffer ( ) const
inline

Definition at line 67 of file THttpServer.h.

const char* THttpServer::GetTopName ( ) const
inline

Definition at line 86 of file THttpServer.h.

Bool_t THttpServer::Hide ( const char *  fullname,
Bool_t  hide = kTRUE 
)

hides folder or element from web gui

Definition at line 809 of file THttpServer.cxx.

Bool_t THttpServer::IsAnyEngine ( ) const
inline

Definition at line 65 of file THttpServer.h.

Bool_t THttpServer::IsFileRequested ( const char *  uri,
TString res 
) const

Check if file is requested, thread safe.

Verifies that request is just file name File names typically contains prefix like "jsrootsys/" If true, method returns real name of the file, which should be delivered to the client Method is thread safe and can be called from any thread.

Definition at line 431 of file THttpServer.cxx.

Bool_t THttpServer::IsReadOnly ( ) const

returns read-only mode

Definition at line 232 of file THttpServer.cxx.

void THttpServer::ProcessRequest ( THttpCallArg arg)
protectedvirtual

submitted arguments

Process single http request Depending from requested path and filename different actions will be performed.

In most cases information is provided by TRootSniffer class

Definition at line 529 of file THttpServer.cxx.

void THttpServer::ProcessRequests ( )

Process submitted requests, must be called from main thread.

Process requests, submitted for execution Regularly invoked by THttpTimer, when somewhere in the code gSystem->ProcessEvents() is called.

User can call serv->ProcessRequests() directly, but only from main analysis thread.

Definition at line 483 of file THttpServer.cxx.

char * THttpServer::ReadFileContent ( const char *  filename,
Int_t len 
)
static

Reads content of file from the disk.

reads file content

Definition at line 923 of file THttpServer.cxx.

Bool_t THttpServer::Register ( const char *  subfolder,
TObject obj 
)

Register object in subfolder.

Register object in folders hierarchy.

See TRootSniffer::RegisterObject() for more details

Definition at line 748 of file THttpServer.cxx.

Bool_t THttpServer::RegisterCommand ( const char *  cmdname,
const char *  method,
const char *  icon = 0 
)

Register command which can be executed from web interface.

As method one typically specifies string, which is executed with gROOT->ProcessLine() method. For instance serv->RegisterCommand("Invoke","InvokeFunction()");

Or one could specify any method of the object which is already registered to the server. For instance: serv->Register("/", hpx); serv->RegisterCommand("/ResetHPX", "/hpx/->Reset()"); Here symbols '/->' separates item name from method to be executed

One could specify additional arguments in the command with syntax like arg1%, arg2% and so on. For example: serv->RegisterCommand("/ResetHPX", "/hpx/->SetTitle(\"arg1%")"); serv->RegisterCommand("/RebinHPXPY", "/hpxpy/->Rebin2D(arg1%,arg2%)"); Such parameter(s) will be requested when command clicked in the browser.

Once command is registered, one could specify icon which will appear in the browser: serv->SetIcon("/ResetHPX", "rootsys/icons/ed_execute.png");

One also can set extra property '_fastcmd', that command appear as tool button on the top of the browser tree: serv->SetItemField("/ResetHPX", "_fastcmd", "true"); Or it is equivalent to specifying extra argument when register command: serv->RegisterCommand("/ResetHPX", "/hpx/->Reset()", "button;rootsys/icons/ed_delete.png");

Definition at line 801 of file THttpServer.cxx.

void THttpServer::Restrict ( const char *  path,
const char *  options 
)

Restrict access to specified object.

See TRootSniffer::Restrict() for more details

Definition at line 768 of file THttpServer.cxx.

void THttpServer::SetDefaultPage ( const char *  filename)

Set file name of HTML page, delivered by the server when http address is opened in the browser.

By default, $ROOTSYS/etc/http/files/online.htm page is used When empty filename is specified, default page will be used

Definition at line 285 of file THttpServer.cxx.

void THttpServer::SetDrawPage ( const char *  filename)

Set file name of HTML page, delivered by the server when objects drawing page is requested from the browser By default, $ROOTSYS/etc/http/files/draw.htm page is used When empty filename is specified, default page will be used.

Definition at line 302 of file THttpServer.cxx.

Bool_t THttpServer::SetIcon ( const char *  fullname,
const char *  iconname 
)

set name of icon, used in browser together with the item

One could use images from $ROOTSYS directory like: serv->SetIcon("/ResetHPX","/rootsys/icons/ed_execute.png");

Definition at line 820 of file THttpServer.cxx.

Bool_t THttpServer::SetItemField ( const char *  fullname,
const char *  name,
const char *  value 
)

Definition at line 834 of file THttpServer.cxx.

void THttpServer::SetJSROOT ( const char *  location)

Set location of JSROOT to use with the server One could specify address like: https://root.cern.ch/js/3.3/ http://web-docs.gsi.de/~linev/js/3.3/ This allows to get new JSROOT features with old server, reduce load on THttpServer instance, also startup time can be improved When empty string specified (default), local copy of JSROOT is used (distributed with ROOT)

Definition at line 274 of file THttpServer.cxx.

void THttpServer::SetReadOnly ( Bool_t  readonly)

Set read-only mode for the server (default on) In read-only server is not allowed to change any ROOT object, registered to the server Server also cannot execute objects method via exe.json request.

Definition at line 242 of file THttpServer.cxx.

void THttpServer::SetSniffer ( TRootSniffer sniff)

Set TRootSniffer to the server Server takes ownership over sniffer.

Definition at line 223 of file THttpServer.cxx.

void THttpServer::SetTimer ( Long_t  milliSec = 100,
Bool_t  mode = kTRUE 
)

create timer which will invoke ProcessRequests() function periodically Timer is required to perform all actions in main ROOT thread Method arguments are the same as for TTimer constructor By default, sync timer with 100 ms period is created

If milliSec == 0, no timer will be created. In this case application should regularly call ProcessRequests() method.

Definition at line 368 of file THttpServer.cxx.

void THttpServer::SetTopName ( const char *  top)
inline

Definition at line 80 of file THttpServer.h.

Bool_t THttpServer::Unregister ( TObject obj)

Unregister object.

Unregister object in folders hierarchy.

See TRootSniffer::UnregisterObject() for more details

Definition at line 758 of file THttpServer.cxx.

Bool_t THttpServer::VerifyFilePath ( const char *  fname)
staticprotected

Checked that filename does not contains relative path below current directory Used to prevent access to files below current directory.

Definition at line 385 of file THttpServer.cxx.

Member Data Documentation

TList THttpServer::fCallArgs
protected

mutex to protect list with arguments

Definition at line 51 of file THttpServer.h.

TString THttpServer::fDefaultPage
protected

list of local directories, which could be accessed via server

Definition at line 45 of file THttpServer.h.

TString THttpServer::fDefaultPageCont
protected

file name for default page name

Definition at line 46 of file THttpServer.h.

TString THttpServer::fDrawPage
protected

content of the file content

Definition at line 47 of file THttpServer.h.

TString THttpServer::fDrawPageCont
protected

file name for drawing of single element

Definition at line 48 of file THttpServer.h.

TList THttpServer::fEngines
protected

Definition at line 34 of file THttpServer.h.

TString THttpServer::fJSROOT
protected

name of top folder, default - "ROOT"

Definition at line 42 of file THttpServer.h.

TString THttpServer::fJSROOTSYS
protected

id of the main ROOT process

Definition at line 40 of file THttpServer.h.

TList THttpServer::fLocations
protected

location of external JSROOT files

Definition at line 43 of file THttpServer.h.

Long_t THttpServer::fMainThrdId
protected

sniffer provides access to ROOT objects hierarchy

Definition at line 38 of file THttpServer.h.

std::mutex THttpServer::fMutex
protected

content of draw page

Definition at line 50 of file THttpServer.h.

TRootSniffer* THttpServer::fSniffer
protected

timer used to access main thread

Definition at line 36 of file THttpServer.h.

THttpTimer* THttpServer::fTimer
protected

engines which runs http server

Definition at line 35 of file THttpServer.h.

TString THttpServer::fTopName
protected

location of local JSROOT files

Definition at line 41 of file THttpServer.h.


The documentation for this class was generated from the following files: