source: XIOS/dev/dev_cmip6_omp/src/attribute.cpp @ 1606

Last change on this file since 1606 was 1158, checked in by oabramkina, 7 years ago

Two server levels: merging with trunk r1137.
There are bugs.

  • 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      CMessage& operator<<(CMessage& msg,CAttribute& type)
57      {
58        msg.push(type) ;
59        return msg ;
60      }
61
62     CMessage& operator<<(CMessage& msg, const CAttribute& type)
63     {
64//       msg.push(*type.clone()) ;
65       return msg ;
66     }
67 
68      CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)
69     {
70   
71       if (!type.toBuffer(buffer)) ERROR("CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)",
72                                         << "Not enough free space in buffer to queue the attribute.");
73      return buffer ;
74     }
75     
76     CBufferIn& operator>>(CBufferIn& buffer, CAttribute& type)
77     {
78   
79       if (!type.fromBuffer(buffer)) ERROR("CBufferInt& operator>>(CBufferIn& buffer, CAttribute& type)",
80                                           << "Not enough data in buffer to unqueue the attribute.");
81       return buffer ;
82     }
83
84 
85} // namespace xios
Note: See TracBrowser for help on using the repository browser.