// SrmFileMetadata.cxx #include "dial_ws_srm/SrmFileMetadata.h" using std::ostream; using dial::SrmFileMetadata; typedef SrmFileMetadata::Name Name; typedef SrmFileMetadata::Size Size; typedef SrmFileMetadata::Permissions Permissions; //********************************************************************* // Methods. //********************************************************************* // Default constructor. SrmFileMetadata::SrmFileMetadata() { } //********************************************************************* // Constructor. SrmFileMetadata::SrmFileMetadata(const GsoapFileMetadata& gmd) : m_size(gmd.size), m_perm(gmd.permMode), m_pinned(gmd.isPinned), m_permanent(gmd.isPermanent), m_cached(gmd.isCached) { if ( gmd.SURL != 0 ) m_surl = *gmd.SURL; if ( gmd.owner != 0 ) m_owner = *gmd.owner; if ( gmd.group != 0 ) m_group = *gmd.group; if ( gmd.checksumType != 0 ) m_cksum_type = *gmd.checksumType; if ( gmd.checksumValue != 0 ) m_cksum = *gmd.checksumValue; } //********************************************************************* // Destructor. SrmFileMetadata::~SrmFileMetadata() { } //********************************************************************* // Validity. bool SrmFileMetadata::is_valid() const { return surl().size(); } //********************************************************************* // SURL. Name SrmFileMetadata::surl() const { return m_surl; } //********************************************************************* // Size. Size SrmFileMetadata::size() const { return m_size; } //********************************************************************* // Owner. Name SrmFileMetadata::owner() const { return m_owner; } //********************************************************************* // Group. Name SrmFileMetadata::group() const { return m_group; } //********************************************************************* // Permissions. Permissions SrmFileMetadata::permissions() const { return m_perm; } //********************************************************************* // Checksum type. Name SrmFileMetadata::checksum_type() const { return m_cksum_type; } //********************************************************************* // Checksum. Name SrmFileMetadata::checksum() const { return m_cksum; } //********************************************************************* // Pin status. bool SrmFileMetadata::is_pinned() const { return m_pinned; } //********************************************************************* // Permanance. bool SrmFileMetadata::is_permanent() const { return m_permanent; } //********************************************************************* // Pin status. bool SrmFileMetadata::is_cached() const { return m_cached; } //********************************************************************* // Output stream. ostream& SrmFileMetadata::ostr(ostream& lhs, bool header) const { if ( ! is_valid() ) { lhs << "Invalid SRM file metadata"; return lhs; } if ( header ) { lhs << "SRM file metadata"; } lhs << "\n SURL: " << surl(); lhs << "\n Size: " << size(); if ( owner().size() ) lhs << "\n Owner: " << owner(); if ( group().size() ) lhs << "\n Group: " << group(); lhs << "\n Permissions: " << permissions(); if ( checksum_type().size() ) { lhs << "\n " << checksum_type() << " checksum: " << checksum(); } lhs << "\n Is "; if ( ! is_pinned() ) lhs << "not "; lhs << "pinned"; lhs << "\n Is "; if ( ! is_permanent() ) lhs << "not "; lhs << "permanent"; lhs << "\n Is "; if ( ! is_cached() ) lhs << "not "; lhs << "cached"; return lhs; } //********************************************************************* // Free functions. //********************************************************************* // Output stream. ostream& operator<<(ostream& lhs, const dial::SrmFileMetadata& rhs) { return rhs.ostr(lhs, true); } //*********************************************************************