You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/10/04 23:19:41 UTC

svn commit: r1004435 - in /subversion/branches/object-model/subversion/bindings/c++: Version.cpp include/Client.h include/Pool.h include/Types.h include/Version.h

Author: hwright
Date: Mon Oct  4 21:19:40 2010
New Revision: 1004435

URL: http://svn.apache.org/viewvc?rev=1004435&view=rev
Log:
On the object-model branch:
Make the Version object one of our standard wrapped types, rather than its
own special one.

* subversion/bindings/c++/include/Pool.h
  (Pool::strdup): New helper.

* subversion/bindings/c++/include/Client.h:
  Don't include the Version.h header.
 
* subversion/bindings/c++/include/Types.h
  (Version): New.
 
* subversion/bindings/c++/include/Version.h:
  Remove.

* subversion/bindings/c++/Version.cpp:
  Remove.

Removed:
    subversion/branches/object-model/subversion/bindings/c++/Version.cpp
    subversion/branches/object-model/subversion/bindings/c++/include/Version.h
Modified:
    subversion/branches/object-model/subversion/bindings/c++/include/Client.h
    subversion/branches/object-model/subversion/bindings/c++/include/Pool.h
    subversion/branches/object-model/subversion/bindings/c++/include/Types.h

Modified: subversion/branches/object-model/subversion/bindings/c++/include/Client.h
URL: http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/bindings/c%2B%2B/include/Client.h?rev=1004435&r1=1004434&r2=1004435&view=diff
==============================================================================
--- subversion/branches/object-model/subversion/bindings/c++/include/Client.h (original)
+++ subversion/branches/object-model/subversion/bindings/c++/include/Client.h Mon Oct  4 21:19:40 2010
@@ -30,7 +30,6 @@
 #include "Types.h"
 #include "Common.h"
 #include "Callback.h"
-#include "Version.h"
 #include "Revision.h"
 #include "Pool.h"
 

Modified: subversion/branches/object-model/subversion/bindings/c++/include/Pool.h
URL: http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/bindings/c%2B%2B/include/Pool.h?rev=1004435&r1=1004434&r2=1004435&view=diff
==============================================================================
--- subversion/branches/object-model/subversion/bindings/c++/include/Pool.h (original)
+++ subversion/branches/object-model/subversion/bindings/c++/include/Pool.h Mon Oct  4 21:19:40 2010
@@ -29,6 +29,8 @@
 
 #include "svn_pools.h"
 
+#include "apr_strings.h"
+
 namespace SVN
 {
 
@@ -57,6 +59,12 @@ namespace SVN
         return apr_palloc(m_pool, sz);
       }
 
+      inline char *
+      strdup(const char *str)
+      {
+        return apr_pstrdup(m_pool, str);
+      }
+
       inline void
       registerCleanup(apr_status_t (*cleanup_func)(void *), void *baton)
       {

Modified: subversion/branches/object-model/subversion/bindings/c++/include/Types.h
URL: http://svn.apache.org/viewvc/subversion/branches/object-model/subversion/bindings/c%2B%2B/include/Types.h?rev=1004435&r1=1004434&r2=1004435&view=diff
==============================================================================
--- subversion/branches/object-model/subversion/bindings/c++/include/Types.h (original)
+++ subversion/branches/object-model/subversion/bindings/c++/include/Types.h Mon Oct  4 21:19:40 2010
@@ -259,6 +259,39 @@ class ClientNotifyInfo
     Private::CStructWrapper<ClientNotifyInfo, const svn_wc_notify_t> m_notify;
 };
 
+class Version
+{
+  public:
+    inline static svn_version_t *
+    dup(const svn_version_t *version, Pool &pool)
+    {
+      svn_version_t *v =
+                    reinterpret_cast<svn_version_t *>(pool.alloc(sizeof(*v)));
+
+      v->major = version->major;
+      v->minor = version->minor;
+      v->patch = version->patch;
+      v->tag = pool.strdup(version->tag);
+
+      return v;
+    }
+
+    inline
+    Version(const svn_version_t *version)
+      : m_version(version)
+    {
+    }
+
+    inline std::string
+    getTag()
+    {
+      return std::string(m_version->tag);
+    }
+
+  private:
+    Private::CStructWrapper<Version, const svn_version_t> m_version;
+};
+
 }