00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _SVNCPP_STATUS_HPP_
00014 #define _SVNCPP_STATUS_HPP_
00015
00016
00017 #include "svn_wc.h"
00018
00019
00020 #include "svncpp/entry.hpp"
00021 #include "svncpp/pool.hpp"
00022
00023
00024 namespace svn
00025 {
00033 class Status
00034 {
00035 public:
00039 Status (const Status & src);
00040
00047 Status (const char *path = NULL, svn_wc_status_t * status = NULL);
00048
00052 virtual ~Status ();
00053
00057 const char *
00058 path () const
00059 {
00060 return m_path->data;
00061 }
00062
00067 const Entry
00068 entry () const
00069 {
00070 return Entry (m_status->entry);
00071 }
00072
00076 const svn_wc_status_kind
00077 textStatus () const
00078 {
00079 return m_status->text_status;
00080 }
00081
00085 const svn_wc_status_kind
00086 propStatus () const
00087 {
00088 return m_status->prop_status;
00089 }
00090
00094 const bool
00095 isVersioned () const
00096 {
00097 return m_isVersioned;
00098 }
00099
00103 const bool
00104 isLocked () const
00105 {
00106 return m_status->locked != 0;
00107 }
00108
00112 const bool
00113 isCopied () const
00114 {
00115 return m_status->copied != 0;
00116 }
00117
00121 const bool
00122 isSwitched () const
00123 {
00124 return m_status->switched != 0;
00125 }
00126
00130 const svn_wc_status_kind
00131 reposTextStatus () const
00132 {
00133 return m_status->repos_text_status;
00134 }
00135
00139 const svn_wc_status_kind
00140 reposPropStatus () const
00141 {
00142 return m_status->repos_prop_status;
00143 }
00144
00148 operator svn_wc_status_t * () const
00149 {
00150 return m_status;
00151 }
00152
00156 Status &
00157 operator = (const Status &);
00158 private:
00159 svn_wc_status_t * m_status;
00160 svn_string_t * m_path;
00161 Pool m_pool;
00162 bool m_isVersioned;
00163
00170 void
00171 init (const char *path, const svn_wc_status_t * status);
00172 };
00173 }
00174
00175 #endif
00176
00177
00178
00179
00180