// SrmFileMetadata.h #ifndef dial__SrmFileMetadata_H #define dial__SrmFileMetadata_H // Wrapper for SRM request status. #include "../gsoap/dial_ws_srmStub.h" #include #include namespace dial { class SrmFileMetadata { public: // typedefs typedef std::string Name; typedef long Size; typedef int Permissions; typedef ns4__FileMetaData GsoapFileMetadata; private: // data Name m_surl; Size m_size; Name m_owner; Name m_group; Permissions m_perm; Name m_cksum_type; Name m_cksum; bool m_pinned; bool m_permanent; bool m_cached; public: // methods // Default constructor (invalid). SrmFileMetadata(); // Constructor from gsoap SRM file metadata object. explicit SrmFileMetadata(const GsoapFileMetadata& gmd); // Destructor. virtual ~SrmFileMetadata(); // Is this a valid metadata object? // True for any nonblank surl. virtual bool is_valid() const; // SURL. Name surl() const; // Size. Size size() const; // Owner. Name owner() const; // Owning group. Name group() const; // Permissions. Permissions permissions() const; // Checksum type. Name checksum_type() const; // Checksum. Name checksum() const; // Pin status. bool is_pinned() const; // Permanence. bool is_permanent() const; // Pin status. bool is_cached() const; // Output stream. // Header line is displayed if header is true. std::ostream& ostr(std::ostream& lhs, bool header) const; }; } // end unnamed namespace // Output stream std::ostream& operator<<(std::ostream& lhs, const dial::SrmFileMetadata& rhs); #endif