ROOT logo
(UNKNOWN PRODUCT) » C2LYNX » TMrbC2Lynx

class TMrbC2Lynx: public TNamed

__________________________________________________[C++ CLASS IMPLEMENTATION]

 Name:           c2lynx/src/TMrbC2Lynx.cxx
 Purpose:        MARaBOU client to connect to LynxOs/VME
 Description:    Implements class methods for a client to LynxOs/VME
 Keywords:
 Author:         R. Lutter
 Mailto:         <a href=mailto:rudi.lutter@physik.uni-muenchen.de>R. Lutter</a>
 Revision:       $Id: TMrbC2Lynx.cxx,v 1.17 2011-05-20 12:21:10 Marabou Exp $
 Date:           $Date: 2011-05-20 12:21:10 $

Function Members (Methods)

public:
TMrbC2Lynx()
TMrbC2Lynx(const Char_t* HostName, const Char_t* Server = NULL, const Char_t* LogFile = NULL, Int_t Port = 9010, const Char_t* ServerLog = "cout", Bool_t ConnectFlag = kTRUE)
virtual~TMrbC2Lynx()
voidTObject::AbstractMethod(const char* method) const
voidAddModule(TMrbNamedX* Module)
M2L_MsgHdr*AllocMessage(Int_t Length, Int_t Wc, UInt_t What)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidBye()
Bool_tCheckAccessToLynxOs(const Char_t* Host, const Char_t* ServerPath)
Bool_tCheckVersion(TString& Cpu, TString& Lynx, const Char_t* Host = NULL, const Char_t* ServerPath = NULL)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
Bool_tConnect(Bool_t WaitFlag = kTRUE)
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
TC2LVMEModule*FindModule(const Char_t* ModuleName)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
const Char_t*GetHost()
virtual const char*TObject::GetIconName() const
const Char_t*GetLogFile()
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPort()
TMrbNamedX*GetServerLog()
const Char_t*GetServerName()
const Char_t*GetServerPath()
TSocket*GetSocket()
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
voidHelp()
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitMessage(M2L_MsgHdr* Hdr, Int_t Length, UInt_t What)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsConnected()
Bool_tIsDebug()
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsNonBlocking()
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tIsVerbose()
Bool_tTObject::IsZombie() const
Int_tLength(M2L_MsgHdr* Hdr)
TMrbLofNamedX*LofModules()
Bool_tLogCout()
Bool_tLogNone()
Bool_tLogXterm()
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
Bool_tRecv(M2L_MsgHdr* Hdr)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
Bool_tSend(M2L_MsgHdr* Hdr)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNonBlocking(Bool_t Flag = kFALSE)
static voidTObject::SetObjectStat(Bool_t stat)
Bool_tSetServerLog(const Char_t* Output)
Bool_tSetServerLog(TMrbC2Lynx::EC2LServerLog Output)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
Bool_tWaitForConnection()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
UInt_tWhat(M2L_MsgHdr* Hdr)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
voidReset()

Data Members

public:
enum EC2LServerLog { kC2LServerLogNone
kC2LServerLogCout
kC2LServerLogXterm
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tfDebugModekTRUE if debug, includes verbose=on
TStringfHosthost name
TMrbLofNamedXfLofModuleslist of vme/camac modules connected
TMrbLofNamedXfLofServerLogslist of server log modes
TStringfLogFilewhere to write log info
TStringTNamed::fNameobject identifier
Bool_tfNonBlockingnon-blocking mode
Int_tfPortport number
TMrbNamedX*fServerLogwhere to output server messages
TStringfServerNameserver program
TStringfServerPathwhere to start server from
TSocket*fSocket! connection to server
TStringTNamed::fTitleobject title
Bool_tfUseXtermkTRUE if server logs to be shown in a xterm window
Bool_tfVerboseModekTRUE if verbose mode on

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TMrbC2Lynx(const Char_t* HostName, const Char_t* Server = NULL, const Char_t* LogFile = NULL, Int_t Port = 9010, const Char_t* ServerLog = "cout", Bool_t ConnectFlag = kTRUE)
__________________________________________________________________[C++ CTOR]

 Name:           TMrbC2Lynx
 Purpose:        Connect to LynxOs
 Arguments:      Char_t * HostName      -- server host
                 Char_t * Server        -- server path
                 Char_t * LogFile       -- where to write log messages
                 Int_t Port             -- tcp port
                 Char_t * ServerLog     -- where to output server logs
                 Bool_t ConnectFlag     -- try to establish connection
 Results:        --
 Description:    Class constructor

Bool_t Connect(Bool_t WaitFlag = kTRUE)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::Connect
 Purpose:        Connect to server
 Arguments:      Bool_t WaitFlag  -- wait for connection to establish if kTRUE
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    (Re)Connects to server.
 Keywords:

Bool_t WaitForConnection()
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::WaitForConnection
 Purpose:        Connect to server
 Arguments:      --
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Wait for connection to establish.
 Keywords:

void Reset()
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::Reset
 Purpose:        Reset internal data base
 Arguments:      --
 Results:        --
 Exceptions:
 Description:    Reset data base (protected method).
 Keywords:

Bool_t SetServerLog(const Char_t* Output)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::SetServerLog
 Purpose:        Define output mode
 Arguments:      Char_t * Output   -- output mode
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Defines output mode for server logs
 Keywords:

Bool_t SetServerLog(TMrbC2Lynx::EC2LServerLog Output)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::SetServerLog
 Purpose:        Define output mode
 Arguments:      EC2LServerLog Output   -- output mode
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Defines output mode for server logs
 Keywords:

Bool_t Send(M2L_MsgHdr* Hdr)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::Send
 Purpose:        Send a message
 Arguments:      M2L_MsgHdr * Hdr  -- (header of) message to be sent
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Sends a message over internal socket.
 Keywords:

Bool_t Recv(M2L_MsgHdr* Hdr)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::Recv
 Purpose:        Receive a message
 Arguments:      M2L_MsgHdr * Hdr  -- (header of) message
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Sends a message over internal socket.
 Keywords:

void Bye()
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::Bye
 Purpose:        Terminate session
 Arguments:      --
 Results:        --
 Exceptions:
 Description:    Sends a bye message to server and terminates connection.
 Keywords:

void InitMessage(M2L_MsgHdr* Hdr, Int_t Length, UInt_t What)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::InitMessage
 Purpose:        Initialize message
 Arguments:      M2L_MsgHdr * Hdr    -- ptr to message (header)
                 Int_t Length        -- message length
                 UInt_t What         -- message type
 Results:        --
 Exceptions:
 Description:    Clears message data and fills header
 Keywords:

M2L_MsgHdr * AllocMessage(Int_t Length, Int_t Wc, UInt_t What)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::AllocMessage
 Purpose:        Allocate message
 Arguments:      Int_t Length        -- message length
                 Int_t Wc            -- length of data (words)
                 UInt_t What         -- message type
 Results:        M2L_MsgHdr * Hdr    -- ptr to message (header)
 Exceptions:
 Description:    Allocates message on heap
 Keywords:

Bool_t CheckAccessToLynxOs(const Char_t* Host, const Char_t* ServerPath)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::CheckAccessToLynxOs
 Purpose:        Check access to file
 Arguments:      Char_t * Host        -- name of ppc host
                 Char_t * Path        -- path to lynxOs server
 Results:        kTRUE/kFALSE
 Exceptions:
 Description:    Checks if path can be seen from lynxOs
 Keywords:

Bool_t CheckVersion(TString& Cpu, TString& Lynx, const Char_t* Host = NULL, const Char_t* ServerPath = NULL)
________________________________________________________________[C++ METHOD]

 Name:           TMrbC2Lynx::CheckVersion
 Purpose:        Check server version
 Arguments:      Char_t * Host        -- name of ppc host
                 Char_t * Path        -- path to lynxOs server
 Results:        kTRUE / kFALSE
                 TString & Cpu        -- cpu version
                 TString & Lynx       -- lynx version
 Exceptions:
 Description:    Checks file on server machine for occurrence of "@#@" strings:
                 @#@CPU=RIOn
                 @#@LynxOs=n.n
 Keywords:

TMrbC2Lynx()
{ this->Reset(); }
~TMrbC2Lynx()
{}
void SetNonBlocking(Bool_t Flag = kFALSE)
{ fNonBlocking = Flag; }
const Char_t * GetHost()
{ return(fHost.Data()); }
const Char_t * GetServerName()
{ return(fServerName.Data()); }
const Char_t * GetServerPath()
{ return(fServerPath.Data()); }
const Char_t * GetLogFile()
{ return(fLogFile.Data()); }
Int_t GetPort()
{ return(fPort); }
TSocket * GetSocket()
{ return(fSocket); }
Bool_t IsVerbose()
{ return(fVerboseMode); }
Bool_t IsDebug()
{ return(fDebugMode); }
Bool_t IsNonBlocking()
{ return(fNonBlocking); }
Bool_t LogNone()
{ return(fServerLog->GetIndex() == kC2LServerLogNone); }
Bool_t LogCout()
{ return(fServerLog->GetIndex() == kC2LServerLogCout); }
Bool_t LogXterm()
{ return(fServerLog->GetIndex() == kC2LServerLogXterm); }
TMrbNamedX * GetServerLog()
{ return(fServerLog); }
Bool_t IsConnected()
{ return(fSocket != NULL); }
void AddModule(TMrbNamedX* Module)
{ fLofModules.AddLast(Module); }
TMrbLofNamedX * LofModules()
{ return(&fLofModules); }
TC2LVMEModule * FindModule(const Char_t* ModuleName)
{ return((TC2LVMEModule *) fLofModules.FindByName(ModuleName)); }
UInt_t What(M2L_MsgHdr* Hdr)
{ return(Hdr->fWhat); }
Int_t Length(M2L_MsgHdr* Hdr)
{ return(Hdr->fLength); }
void Help()
{ gSystem->Exec(Form("mrbHelp %s", this->ClassName())); }