source: XIOS/dev/branch_yushan_merged/src/attribute.cpp @ 1134

Last change on this file since 1134 was 1134, checked in by yushan, 7 years ago

branch merged with trunk r1130

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 2.7 KB
Line 
1#include "attribute.hpp"
2#include "base_type.hpp"
3#include "generate_interface.hpp"
4
5
6namespace xios
7{
8
9      const StdString CAttribute::resetInheritanceStr("_reset_") ;
10
11      /// ////////////////////// Définitions ////////////////////// ///
12      CAttribute::CAttribute(const StdString & id)
13         : CObject(id), CBaseType(), _canInherite(true)
14//         , value()
15      { /* Ne rien faire de plus */ }
16/*
17*/     
18      CAttribute::~CAttribute(void)
19      { /* Ne rien faire de plus */ }
20     
21      ///--------------------------------------------------------------
22
23      const StdString & CAttribute::getName(void) const
24      { 
25         return (this->getId()); 
26      }
27   
28      void CAttribute::generateCInterfaceIsDefined(ostream& oss, const string& className)
29      {
30        CInterface::AttributeIsDefinedCInterface(oss, className, this->getName()) ;
31      }
32     
33      void CAttribute::generateFortran2003InterfaceIsDefined(ostream& oss, const string& className)
34      {
35        CInterface::AttributeIsDefinedFortran2003Interface(oss, className, this->getName()) ;
36      }
37     
38     
39      void CAttribute::generateFortranInterfaceIsDefinedDeclaration_(ostream& oss,const string& className)
40      {
41        CInterface::AttributeFortranInterfaceIsDefinedDeclaration(oss, className, this->getName()+"_") ;
42      }
43
44      void CAttribute::generateFortranInterfaceIsDefinedDeclaration(ostream& oss,const string& className)
45      {
46        CInterface::AttributeFortranInterfaceIsDefinedDeclaration(oss, className, this->getName()) ;
47      }
48
49      void CAttribute::generateFortranInterfaceIsDefinedBody_(ostream& oss,const string& className)
50      {
51        CInterface::AttributeFortranInterfaceIsDefinedBody(oss, className, this->getName()) ;
52      }
53
54      ///--------------------------------------------------------------
55
56
57      CMessage& operator<<(CMessage& msg,CAttribute& type)
58      {
59        msg.push(type) ;
60        return msg ;
61      }
62
63     CMessage& operator<<(CMessage& msg, const CAttribute& type)
64     {
65//       msg.push(*type.clone()) ;
66       return msg ;
67     }
68 
69      CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)
70     {
71   
72       if (!type.toBuffer(buffer)) ERROR("CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)",
73                                         << "Not enough free space in buffer to queue the attribute.");
74      return buffer ;
75     }
76     
77     CBufferIn& operator>>(CBufferIn& buffer, CAttribute& type)
78     {
79   
80       if (!type.fromBuffer(buffer)) ERROR("CBufferInt& operator>>(CBufferIn& buffer, CAttribute& type)",
81                                           << "Not enough data in buffer to unqueue the attribute.");
82       return buffer ;
83     }
84
85 
86} // namespace xios
Note: See TracBrowser for help on using the repository browser.