Changeset 1967 in Sophya for trunk/SophyaLib/BaseTools


Ignore:
Timestamp:
Apr 26, 2002, 6:48:22 PM (23 years ago)
Author:
ansari
Message:

Ajout throw TypeMismatchExc ds PPersist_X::SetDataObj() ds les differents classes handler PPersist, a place du return simple, lorsque le type d'objet n'etait pas bon ... Reza 26/4/2002

Location:
trunk/SophyaLib/BaseTools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/fiondblock.cc

    r1426 r1967  
    99#include "pexceptions.h"
    1010#include "fiondblock.h"
     11#include "datatype.h"
     12#include <typeinfo>
    1113
    1214////////////////////////////////////////////////////////////////
     
    7173{
    7274NDataBlock<T> * po = dynamic_cast< NDataBlock<T> * >(&o);
    73 if (po == NULL) throw TypeMismatchExc("FIO_NDataBlock<T>::SetDataObj() - Type Mismatch Error");
     75if (po == NULL) {
     76  char buff[160];
     77  sprintf(buff,"FIO_NDataBlock<T><%s>::SetDataObj(%s) - Object type  error ! ",
     78          DataTypeInfo<T>::getTypeName().c_str(), typeid(o).name());
     79  throw TypeMismatchExc(PExcLongMessage(buff));   
     80}
    7481if (ownobj && dobj) delete dobj;
    7582dobj = po; ownobj = false;
  • trunk/SophyaLib/BaseTools/objfio.h

    r754 r1967  
    2727  virtual   AnyDataObj* DataObj() { return(dobj); }
    2828  virtual   void        SetDataObj(AnyDataObj & o)
    29           {  T * po = dynamic_cast< T * >(& o); if (po == NULL) return;
    30           if (ownobj && dobj) delete dobj;  dobj = po; ownobj = false; }   
    31 
     29  { 
     30    T * po = dynamic_cast< T * >(& o);
     31    if (po == NULL)  {
     32      char buff[160];
     33      sprintf(buff,"ObjFileIO<T>::SetDataObj(%s) - Object type  error ! ",
     34              typeid(o).name());
     35      throw TypeMismatchExc(PExcLongMessage(buff));   
     36    }
     37    if (ownobj && dobj) delete dobj;  dobj = po; ownobj = false;
     38  }   
     39 
    3240  inline operator T() { return(*dobj); }
    3341
  • trunk/SophyaLib/BaseTools/sversion.h

    r1958 r1967  
    33
    44#define SOPHYA_VERSION   1.3
    5 #define SOPHYA_REVISION  55
    6 #define SOPHYA_TAG       "V_Jan2002"
     5#define SOPHYA_REVISION  60
     6#define SOPHYA_TAG       "V_Mar2002"
    77
    88#endif
Note: See TracChangeset for help on using the changeset viewer.