GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
TGo4CreateException.cxx
Go to the documentation of this file.
1// $Id$
2//-----------------------------------------------------------------------
3// The GSI Online Offline Object Oriented (Go4) Project
4// Experiment Data Processing at EE department, GSI
5//-----------------------------------------------------------------------
6// Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7// Planckstr. 1, 64291 Darmstadt, Germany
8// Contact: http://go4.gsi.de
9//-----------------------------------------------------------------------
10// This software can be used under the license agreements as stated
11// in Go4License.txt file which is part of the distribution.
12//-----------------------------------------------------------------------
13
14#include "TGo4CreateException.h"
15
16#include <iostream>
17
18#include "TGo4Log.h"
19#include "TGo4Thread.h"
20#include "TGo4ThreadHandler.h"
21#include "TGo4Runnable.h"
22
25{
26 GO4TRACE((14,"TGo4CreateException::TGo4CreateException(const TGo4CreateException &)",__LINE__, __FILE__));
27}
28
29TGo4CreateException::TGo4CreateException (TGo4Runnable *runnable, const char *threadname)
30:TGo4ThreadException(runnable,threadname)
31{
32 GO4TRACE((14,"TGo4CreateException::TGo4CreateException(TGo4Runnable *, const char *)",__LINE__, __FILE__));
33 fxDescription= "!!!-- Go4 Create Exception --!!!";
34}
35
36
38{
39 GO4TRACE((14,"TGo4CreateException::~TGo4CreateException()",__LINE__, __FILE__));
40}
41
42
44{
45 GO4TRACE((14, "TGo4CreateException::operator=", __LINE__, __FILE__));
46 if (&right != this)
47 TGo4ThreadException::operator=(right); // copy base class members
48 return *this;
49}
50
52{
53 GO4TRACE((14,"TGo4CreateException::Handle()",__LINE__, __FILE__));
54 std::cout << "\t This is the TGo4CreateException::Handler"<<std::endl;
55 Int_t rev=-1;
56 if (!GetThreadName()) {
57 // no threadname specified, operate on thread of runnable
58 GO4TRACE((13, "TGo4CreateException::Handle() -- creating thread of runnable", __LINE__, __FILE__));
59 rev = fxRunnable->GetThread()->Create();
60 } else {
61 // threadname given, use thread handler to cancel
62 GO4TRACE((13, "TGo4CreateException::Handle() -- creating thread by name", __LINE__, __FILE__));
63 rev = fxThreadHandler->Create(GetThreadName());
64 }
65 // note: boolean return values of called methods are implicitly casted to int
66 return rev;
67}
#define GO4TRACE(X)
Definition TGo4Log.h:25
TGo4CreateException & operator=(const TGo4CreateException &right)
TGo4CreateException()=delete
Int_t Handle() override
This is a default handler function for the respective exception type.
TString fxDescription
Base class for all go4 runnables.
TGo4ThreadException()=delete
TGo4Runnable * fxRunnable
Link to the runnable connected with the thread (exception throwing runnable might simply pass its 'th...
const char * GetThreadName() const
TGo4ThreadException & operator=(const TGo4ThreadException &right)
TGo4ThreadHandler * fxThreadHandler
Link to threadhandler associated with the runnable.