メインページ   モジュール   名前空間一覧   クラス階層   アルファベット順一覧   構成   ファイル一覧   構成メンバ   ファイルメンバ   関連ページ    

TAnalysisStatusTable.cc

解説を見る。
00001 // =====================================================================
00002 //  $Id: TAnalysisStatusTable.cc,v 1.4 2004/03/07 10:30:27 goiwai Exp $
00003 //  $Name: CLDAQ-1-14-03 $
00004 //  $Log: TAnalysisStatusTable.cc,v $
00005 //  Revision 1.4  2004/03/07 10:30:27  goiwai
00006 //  ROOTに組みこむためのおまじないマクロを埋めこみました。
00007 //  全てにおいて完全に動作するわけではありません。
00008 //
00009 //  Revision 1.3  2003/10/06 17:02:36  goiwai
00010 //  *** empty log message ***
00011 //
00012 //  Revision 1.2  2003/07/30 16:17:10  goiwai
00013 //  ファイルにコミットログをつけることにしました.
00014 //
00015 // =====================================================================
00016 #include "TAnalysisStatusTable.hh"
00017 
00018 TAnalysisStatusTable::TAnalysisStatusTable()
00019   : TAnalysisStatusList()
00020 {
00021   Clear();
00022 }
00023 
00024 TAnalysisStatusTable::~TAnalysisStatusTable()
00025 {;}
00026 
00027 Tostream& operator<<( Tostream& tos, const TAnalysisStatusTable& right )
00028 {
00029   Tint nstatus = (Tint)right.size();
00030   for ( Tint i = 0; i < nstatus; i ++ ) {
00031     tos << right[ i ];
00032     if ( i !=  nstatus - 1 )
00033       tos << Tendl;
00034   }
00035   tos << Tflush;
00036   return tos;
00037 }
00038 
00039 Tvoid TAnalysisStatusTable::AddAnalysisStatus( const TAnalysisStatus& status )
00040 {
00041   Tstring id = status.GetID();
00042   Tint position = FindAnalysisStatus( id );
00043   if ( position == tNotFound ) {
00044     push_back( status );
00045   } else {
00046     Tstring head = "TAnalysisStatusTable::AddAnalysisStatus: ";
00047     Tcerr << head << "table already has a this status, " << status << Tendl;
00048   }
00049   return;
00050 }
00051 
00052 Tvoid TAnalysisStatusTable::RemoveAnalysisStatus( const Tstring& id )
00053 {
00054   Tint position = FindAnalysisStatus( id );
00055   if ( position != tNotFound ) {
00056     erase( begin() + position );
00057   } else {
00058     Tstring head = "TAnalysisStatusTable::RemoveAnalysisStatus: ";
00059     Tcerr << head << id << " doesn't not found in this table." << Tendl;
00060   }
00061   return;
00062 }
00063 
00064 Tint TAnalysisStatusTable::FindAnalysisStatus( const Tstring& id ) const
00065 {
00066   Tint position = tNotFound;
00067   for ( Tint i = 0; i < (Tint)size(); i ++ ) {
00068     if ( ( (*this)[ i ] ).GetID() == id ) {
00069       position = i;
00070       break;
00071     }
00072   }
00073   return position;
00074 }
00075 
00076 Tvoid TAnalysisStatusTable::Clear()
00077 {
00078   clear();
00079   return;
00080 }
00081 
00082 Tstatus_t TAnalysisStatusTable::GetStatus( const Tstring& id ) const
00083 {
00084   Tint position = FindAnalysisStatus( id );
00085   if ( position == tNotFound )
00086     return tStatusUnknown;
00087   return ( (*this)[ position ] ).GetStatus();
00088 }
00089 
00090 Tvoid TAnalysisStatusTable::SetStatus( const Tstring& id, Tstatus_t status )
00091 {
00092   Tint position = FindAnalysisStatus( id );
00093   if ( position != tNotFound ) {
00094     ( (*this)[ position ] ).SetStatus( status );
00095   } else {
00096     Tstring head = "TAnalysisStatusTable::SetStatus: ";
00097     Tcerr << head << id << " doesn't not found in this table." << Tendl;
00098   }
00099   return;
00100 }
00101 
00102 Tobject_t TAnalysisStatusTable::GetObjectType( const Tstring& id ) const
00103 {
00104   Tint position = FindAnalysisStatus( id );
00105   if ( position == tNotFound )
00106     return tObjectUnknown;
00107   return ( (*this)[ position ] ).GetObjectType();
00108 }
00109 
00110 Tstring TAnalysisStatusTable::GetID( const Tstring& id ) const
00111 {
00112   Tint position = FindAnalysisStatus( id );
00113   if ( position == tNotFound )
00114     return "";
00115   return ( (*this)[ position ] ).GetID();
00116 }
00117 
00118 Tstring TAnalysisStatusTable::GetDrawableObjectID( const Tstring& id ) const
00119 {
00120   Tint position = FindAnalysisStatus( id );
00121   if ( position == tNotFound )
00122     return "";
00123   return ( (*this)[ position ] ).GetDrawableObjectID();
00124 }
00125 
00126 Tstring TAnalysisStatusTable::GetCanvasID( const Tstring& id ) const
00127 {
00128   Tint position = FindAnalysisStatus( id );
00129   if ( position == tNotFound )
00130     return "";
00131   return ( (*this)[ position ] ).GetCanvasID();
00132 }
00133 
00134 Tbool TAnalysisStatusTable::HasStatus( const Tstring& id ) const
00135 {
00136   Tint position = FindAnalysisStatus( id );
00137   if ( position == tNotFound )
00138     return Tfalse;
00139   return Ttrue;
00140 }
00141 
00142 Tthread_t* TAnalysisStatusTable::GetThreadID( const Tstring& id )
00143 {
00144   Tint position = FindAnalysisStatus( id );
00145   if ( position == tNotFound )
00146     return 0;
00147   return ( (*this)[ position ] ).GetThreadID();
00148 }
00149 
00150 Tvoid TAnalysisStatusTable::SetThreadID( const Tstring& id, Tthread_t thread )
00151 {
00152   Tint position = FindAnalysisStatus( id );
00153   if ( position == tNotFound ) {
00154     Tstring head = "TAnalysisStatusTable::SetThreadID: ";
00155     Tcerr << head << id << " doesn't not found in this table." << Tendl;
00156   } else {
00157     ( (*this)[ position ] ).SetThreadID( thread );
00158   }
00159   return;
00160 }
00161 
00162 #ifdef __CLDAQ_ROOT_DLL
00163     ClassImp(TAnalysisStatusTable)
00164 #endif


CLDAQ - a Class Library for DataAcQuisition (Version 1.14.3)
Go IWAI -- goiwai at users.sourceforge.jp