Ignore:
Timestamp:
01/22/21 12:00:29 (3 years ago)
Author:
yushan
Message:

Graph intermedia commit to a tmp branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_graph/src/attribute_array.hpp

    r1686 r2019  
    2121      { 
    2222        public : 
    23  
    24            using CArray<T_numtype,N_rank>::operator = ; 
     23            using CArray<T_numtype,N_rank>::operator = ; 
    2524 
    2625            /// Constructeurs /// 
     
    5655            virtual bool fromBuffer(CBufferIn& buffer) { return _fromBuffer(buffer); } 
    5756            virtual string dump(void) const { return _dump();} 
    58             virtual string dump4graph(void) const { return _dump4graph();} 
     57            virtual string dumpGraph(void) const { return _dumpGraph();} 
    5958 
    6059            virtual void generateCInterface(ostream& oss,const string& className) ; 
     
    6665            virtual void generateFortranInterfaceGetBody_(ostream& oss,const string& className) ; 
    6766            virtual void generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) ; 
     67  
     68 static int show_TV_ttf_display_type ( const CAttributeArray<T_numtype,N_rank>* array ) 
     69      { 
     70        int status ; 
     71        if (array->isEmpty())  
     72        { 
     73          status = TV_ttf_add_row("State", TV_ttf_type_ascii_string,"(empty)") ; 
     74          if (status != TV_ttf_ec_ok) return TV_ttf_format_raw ; 
     75          else return TV_ttf_format_ok_elide ; 
     76        } 
     77        else  
     78        { 
     79          char tname[128] ; 
     80          char bname[128] = "value_type" ; 
     81#ifdef __GNUC__ 
     82         size_t size = sizeof(bname) ; 
     83         abi::__cxa_demangle(typeid(T_numtype).name(), bname, &size, &status) ; 
     84         if (status !=0) return TV_ttf_format_raw ; 
     85#endif 
     86          int dim = array->dimensions() ; 
     87          if (dim==1) snprintf (tname, sizeof(tname), "%s[%d]", bname, array->extent(0)); 
     88          if (dim==2) snprintf (tname, sizeof(tname), "%s[%d][%d]", bname, array->extent(1), array->extent(0)); 
     89          if (dim==3) snprintf (tname, sizeof(tname), "%s[%d][%d][%d]", bname, array->extent(2), array->extent(1), array->extent(3)); 
     90          if (dim==4) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d]", bname, array->extent(0), array->extent(1), array->extent(2), array->extent(3)); 
     91          if (dim==5) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d]", bname, array->extent(4), array->extent(3), array->extent(2), array->extent(1) 
     92                                                                                      ,array->extent(0)); 
     93          if (dim==6) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d][%d]", bname, array->extent(5), array->extent(4), array->extent(3), array->extent(2) 
     94                                                                                      ,array->extent(1),array->extent(0)); 
     95          if (dim==7) snprintf (tname, sizeof(tname), "%s[%d][%d][%d][%d][%d][%d][%d]", bname, array->extent(6), array->extent(5), array->extent(4), array->extent(3) 
     96                                                                                      ,array->extent(2),array->extent(1),array->extent(0)); 
     97          status = TV_ttf_add_row("array_values", tname, array->dataFirst()) ; 
     98          if (status != TV_ttf_ec_ok) return TV_ttf_format_raw ; 
     99          else return TV_ttf_format_ok ; 
     100        } 
     101      } 
     102       
     103             
     104            static int TV_ttf_display_type ( const  CAttributeArray<T_numtype,N_rank>* array ) 
     105           { 
     106             return CAttributeArray<T_numtype,N_rank>::show_TV_ttf_display_type (array) ; 
     107           } 
    68108 
    69109         private : 
     
    72112          StdString _toString(void) const; 
    73113          StdString _dump(void) const; 
    74           StdString _dump4graph(void) const; 
     114          StdString _dumpGraph(void) const; 
    75115          void _fromString(const StdString & str); 
    76116          bool _toBuffer  (CBufferOut& buffer) const; 
    77117          bool _fromBuffer(CBufferIn& buffer) ; 
    78118      }; // class CAttributeEnum 
     119 
     120 
     121#define macrotyperank(_TYPE_,_RANK_)\ 
     122  template<> int CAttributeArray<_TYPE_,_RANK_>::TV_ttf_display_type(const CAttributeArray<_TYPE_,_RANK_>* array ) \ 
     123  {\ 
     124    return CAttributeArray<_TYPE_,_RANK_>::show_TV_ttf_display_type (array) ;\ 
     125  } 
     126 
     127#define macrotype(_TYPE_)\ 
     128macrotyperank(_TYPE_,1)\ 
     129macrotyperank(_TYPE_,2)\ 
     130macrotyperank(_TYPE_,3)\ 
     131macrotyperank(_TYPE_,4)\ 
     132macrotyperank(_TYPE_,5)\ 
     133macrotyperank(_TYPE_,6)\ 
     134macrotyperank(_TYPE_,7) 
     135 
     136macrotype(double) 
     137macrotype(int) 
     138macrotype(bool) 
     139macrotype(size_t) 
     140macrotype(float) 
     141macrotype(string) 
     142 
     143#undef macrotyperank 
     144#undef macrotype 
    79145} // namespace xios 
    80146 
Note: See TracChangeset for help on using the changeset viewer.