Ignore:
Timestamp:
05/19/08 15:04:36 (17 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mdata
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mdata/MDataMember.cc

    r8720 r8892  
    9393// --------------------------------------------------------------------------
    9494//
     95// Check if accessing fCall is safe
     96//
     97Bool_t MDataMember::CheckGet() const
     98{
     99    if (!fObject)
     100    {
     101        *fLog << err << "ERROR - MDataMember::Get: fObject not initialized ";
     102        *fLog << "(not PreProcessed)... returning 0." << endl;
     103        return kFALSE;
     104    }
     105
     106    if (!fCall)
     107    {
     108        *fLog << err << "ERROR - MDataMemberGet: No TMethodCall for " << fDataMember << " of ";
     109        *fLog << fObject->GetName() << " available... returning 0." << endl;
     110        return kFALSE;
     111    }
     112
     113    return kTRUE;
     114}
     115
     116// --------------------------------------------------------------------------
     117//
    95118// Returns the value you requested
    96119//
    97120Double_t MDataMember::GetValue() const
    98121{
    99     if (!fObject)
    100     {
    101         *fLog << err << "ERROR - MDataMember::GetValue: fObject not initialized ";
    102         *fLog << "(not PreProcessed)... returning 0." << endl;
     122    if (!CheckGet())
    103123        return 0;
    104     }
    105 
    106     if (!fCall)
    107     {
    108         *fLog << err << "No TMethodCall for " << fDataMember << " of ";
    109         *fLog << fObject->GetName() << " available... returning 0." << endl;
    110         return 0;
    111     }
    112124
    113125    switch (fCall->ReturnType())
     
    127139        *fLog << fObject->GetName() << " neither int nor float... returning 0." << endl;
    128140        return 0;
     141    }
     142}
     143
     144// --------------------------------------------------------------------------
     145//
     146// Returns the string you requested
     147//
     148const char *MDataMember::GetString() const
     149{
     150    if (!CheckGet())
     151        return NULL;
     152
     153    switch (fCall->ReturnType())
     154    {
     155    case TMethodCall::kString:
     156        {
     157            char *c=NULL;
     158            fCall->Execute(fObject, &c);
     159            return c;
     160        }
     161
     162    default:
     163        *fLog << err << "DataMember " << fDataMember << " of ";
     164        *fLog << fObject->GetName() << " not a char*... returning NULL." << endl;
     165        return NULL;
    129166    }
    130167}
  • trunk/MagicSoft/Mars/mdata/MDataMember.h

    r3572 r8892  
    2222    enum { kIsInt = BIT(14) };
    2323
     24    Bool_t CheckGet() const;
     25
    2426public:
    2527    MDataMember(const char *member=NULL) : fObject(NULL), fCall(NULL)
     
    3234
    3335    Double_t GetValue() const;
     36    const char *GetString() const;
    3437    Bool_t PreProcess(const MParList *plist);
    3538
Note: See TracChangeset for help on using the changeset viewer.