attribute.cpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "attribute.hpp"
  2. #include "base_type.hpp"
  3. #include "generate_interface.hpp"
  4. namespace xios
  5. {
  6. const StdString CAttribute::resetInheritanceStr("_reset_") ;
  7. /// ////////////////////// Définitions ////////////////////// ///
  8. CAttribute::CAttribute(const StdString & id)
  9. : CObject(id), CBaseType(), _canInherite(true)
  10. // , value()
  11. { /* Ne rien faire de plus */ }
  12. /*
  13. */
  14. CAttribute::~CAttribute(void)
  15. { /* Ne rien faire de plus */ }
  16. ///--------------------------------------------------------------
  17. const StdString & CAttribute::getName(void) const
  18. {
  19. return (this->getId());
  20. }
  21. void CAttribute::generateCInterfaceIsDefined(ostream& oss, const string& className)
  22. {
  23. CInterface::AttributeIsDefinedCInterface(oss, className, this->getName()) ;
  24. }
  25. void CAttribute::generateFortran2003InterfaceIsDefined(ostream& oss, const string& className)
  26. {
  27. CInterface::AttributeIsDefinedFortran2003Interface(oss, className, this->getName()) ;
  28. }
  29. void CAttribute::generateFortranInterfaceIsDefinedDeclaration_(ostream& oss,const string& className)
  30. {
  31. CInterface::AttributeFortranInterfaceIsDefinedDeclaration(oss, className, this->getName()+"_") ;
  32. }
  33. void CAttribute::generateFortranInterfaceIsDefinedDeclaration(ostream& oss,const string& className)
  34. {
  35. CInterface::AttributeFortranInterfaceIsDefinedDeclaration(oss, className, this->getName()) ;
  36. }
  37. void CAttribute::generateFortranInterfaceIsDefinedBody_(ostream& oss,const string& className)
  38. {
  39. CInterface::AttributeFortranInterfaceIsDefinedBody(oss, className, this->getName()) ;
  40. }
  41. ///--------------------------------------------------------------
  42. CMessage& operator<<(CMessage& msg,CAttribute& type)
  43. {
  44. msg.push(type) ;
  45. return msg ;
  46. }
  47. CMessage& operator<<(CMessage& msg, const CAttribute& type)
  48. {
  49. // msg.push(*type.clone()) ;
  50. return msg ;
  51. }
  52. CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)
  53. {
  54. if (!type.toBuffer(buffer)) ERROR("CBufferOut& operator<<(CBufferOut& buffer, CAttribute& type)",
  55. << "Not enough free space in buffer to queue the attribute.");
  56. return buffer ;
  57. }
  58. CBufferIn& operator>>(CBufferIn& buffer, CAttribute& type)
  59. {
  60. if (!type.fromBuffer(buffer)) ERROR("CBufferInt& operator>>(CBufferIn& buffer, CAttribute& type)",
  61. << "Not enough data in buffer to unqueue the attribute.");
  62. return buffer ;
  63. }
  64. } // namespace xios