TNetFile
class description - source file - inheritance tree
private:
TNetFile TNetFile()
void Init(Bool_t create)
virtual void Print(Option_t* option) const
void PrintError(const char* where, Int_t err) const
Int_t Recv(Int_t& status, EMessageTypes& kind)
public:
TNetFile TNetFile(const char* url, Option_t* option, const char* ftitle, Int_t compress = 1)
virtual void ~TNetFile()
static TClass* Class()
virtual void Close(Option_t* option)
virtual void Flush()
virtual TClass* IsA() const
virtual Bool_t IsOpen() const
virtual Bool_t ReadBuffer(char* buf, int len)
virtual void Seek(Seek_t offset, TFile::ERelativeTo pos = kBeg)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
virtual Bool_t WriteBuffer(const char* buf, int len)
private:
TUrl fUrl URL of file
TString fUser remote user name
Seek_t fOffset seek offset
TSocket* fSocket connection to rootd server
TNetFile
A TNetFile is like a normal TFile except that it reads and writes
its data via a rootd server (for more on the rootd daemon see the
source files root/rootd/src/*.cxx). TNetFile file names are in
standard URL format with protocol "root" or "roots". The following
are valid TNetFile URL's:
roots://hpsalo/files/aap.root
root://hpbrun.cern.ch/root/hsimple.root
root://pcna49a:5151/~na49/data/run821.root
root://pcna49d.cern.ch:5050//v1/data/run810.root
The only difference with the well known httpd URL's is that the root
of the remote file tree is the user's home directory. Therefore an
absolute pathname requires a // after the host or port specifier
(see last example). Further the expansion of the standard shell
characters, like ~, $, .., are handled as expected.
TNetFile (actually TUrl) uses 1094 as default port for rootd.
Connecting to a rootd requires the remote user id and password.
TNetFile allows three ways for you to provide your login:
1) Setting it globally via the static functions:
TNetFile::SetUser() and TNetFile::SetPasswd()
2) Getting it from the ~/.netrc file (same file as used by ftp)
3) Command line prompt
The different methods will be tried in the order given above.
On machines with AFS rootd will authenticate using AFS (if it was
compiled with AFS support).
If the protocol was specified as "roots" a secure authetication
method will be used. The secure method uses the SRP, Secure Remote
Passwords, package. SRP uses a so called "asymmetric key exchange
protocol" in which no passwords are ever send over the wire. This
protocol is safe against all known security attacks. For more see:
NetFile
The rootd daemon lives in the directory $ROOTSYS/bin. It can be
started either via inetd or by hand from the command line (no need
to be super user). For more info about rootd see the web page:
NetFile
TNetFile(const char *url, Option_t *option, const char *ftitle, Int_t compress)
: TFile(url, "NET", ftitle, compress), fUrl(url)
Create a NetFile object. A net file is the same as a TFile
except that it is being accessed via a rootd server. The url
argument must be of the form: root[s]://host.dom.ain/file.root.
When protocol is "roots" try using secure authentication.
If the file specified in the URL does not exist, is not accessable
or can not be created the kZombie bit will be set in the TNetFile
object. Use IsZombie() to see if the file is accessable.
If the remote daemon thinks the file is still connected, while you are
sure this is not the case you can force open the file by preceding the
option argument with an "f" or "F" , e.g.: "frecreate". Do this only
in cases when you are very sure nobody else is using the file.
For a description of the option and other arguments see the TFile ctor.
The preferred interface to this constructor is via TFile::Open().
~TNetFile()
TNetFile dtor. Send close message and close socket.
void Close(Option_t *opt)
Close remote file.
void Flush()
Flush file to disk.
void Init(Bool_t create)
Initialize a TNetFile object.
Bool_t IsOpen() const
Retruns kTRUE if file is open, kFALSE otherwise.
void Print(Option_t *) const
Print some info about the net file.
void PrintError(const char *where, Int_t err) const
Print error string depending on error code.
Bool_t ReadBuffer(char *buf, int len)
Read specified byte range from remote file via rootd daemon.
Returns kTRUE in case of error.
Bool_t WriteBuffer(const char *buf, int len)
Write specified byte range to remote file via rootd daemon.
Returns kTRUE in case of error.
Int_t Recv(Int_t &status, EMessageTypes &kind)
Return status from rootd server and message kind. Returns -1 in
case of error otherwise 8 (sizeof 2 words, status and kind).
void Seek(Seek_t offset, ERelativeTo pos)
Set position from where to start reading.
Inline Functions
TNetFile TNetFile(const char* url, Option_t* option, const char* ftitle, Int_t compress = 1)
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Author: Fons Rademakers 14/08/97
Last update: root/net:$Name: $:$Id: TNetFile.cxx,v 1.10 2000/12/19 14:33:22 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.