[Libreoffice-commits] core.git: 2 commits - include/rtl include/tools tools/source

Kohei Yoshida kohei.yoshida at collabora.com
Tue Nov 18 18:48:07 PST 2014


 include/rtl/bootstrap.h    |    5 ++-
 include/tools/resary.hxx   |   38 ++++++++++--------------------
 tools/source/rc/resary.cxx |   57 +++++++++++++++++++++++++++++++++++++--------
 3 files changed, 64 insertions(+), 36 deletions(-)

New commits:
commit 764600bc6175a32d119487afda2e8409f3395666
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Nov 18 21:42:23 2014 -0500

    Apply pimpl to ResStringArray, to hide its internals.
    
    Change-Id: I23969735f35e221a1aad39081ee63d02066d856f

diff --git a/include/tools/resary.hxx b/include/tools/resary.hxx
index 21a6625..90b6ba9 100644
--- a/include/tools/resary.hxx
+++ b/include/tools/resary.hxx
@@ -19,42 +19,30 @@
 #ifndef INCLUDED_TOOLS_RESARY_HXX
 #define INCLUDED_TOOLS_RESARY_HXX
 
-#include <boost/noncopyable.hpp>
-#include <vector>
 #include <tools/toolsdllapi.h>
-#include <tools/resid.hxx>
+#include <rtl/ustring.hxx>
 
 #define RESARRAY_INDEX_NOTFOUND (0xffffffff)
 
-class TOOLS_DLLPUBLIC ResStringArray : private boost::noncopyable
-{
-private:
-    struct ImplResStringItem
-    {
-        OUString m_aStr;
-        sal_IntPtr m_nValue;
+class ResId;
 
-        ImplResStringItem( const OUString& rStr, long nValue = 0 ) :
-        m_aStr( rStr ),
-        m_nValue( nValue )
-        {}
-    };
+class TOOLS_DLLPUBLIC ResStringArray
+{
+    struct Impl;
+    Impl* mpImpl;
 
-    std::vector< ImplResStringItem >    m_aStrings;
+    ResStringArray( const ResStringArray& ); // disabled
+    ResStringArray& operator=( const ResStringArray& ); // disabled
 
 public:
     ResStringArray( const ResId& rResId );
     ~ResStringArray();
 
-    const OUString      GetString( sal_uInt32 nIndex ) const
-    { return (nIndex < m_aStrings.size()) ? m_aStrings[nIndex].m_aStr : OUString(); }
-    sal_IntPtr          GetValue( sal_uInt32 nIndex ) const
-    { return (nIndex < m_aStrings.size()) ? m_aStrings[nIndex].m_nValue : -1; }
-    sal_uInt32          Count() const { return sal_uInt32(m_aStrings.size()); }
-
-    sal_uInt32          FindIndex( sal_IntPtr nValue ) const;
-
-    sal_uInt32          AddItem( const OUString& rString, sal_IntPtr nValue );
+    OUString GetString( sal_uInt32 nIndex ) const;
+    sal_IntPtr GetValue( sal_uInt32 nIndex ) const;
+    sal_uInt32 Count() const;
+    sal_uInt32 FindIndex( sal_IntPtr nValue ) const;
+    sal_uInt32 AddItem( const OUString& rString, sal_IntPtr nValue );
 };
 
 #endif
diff --git a/tools/source/rc/resary.cxx b/tools/source/rc/resary.cxx
index dac1d94..03854d3 100644
--- a/tools/source/rc/resary.cxx
+++ b/tools/source/rc/resary.cxx
@@ -17,11 +17,34 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <tools/resmgr.hxx>
 #include <tools/resary.hxx>
+#include <tools/resmgr.hxx>
 #include <tools/rcid.h>
 
-ResStringArray::ResStringArray( const ResId& rResId )
+#include <vector>
+
+namespace {
+
+struct ImplResStringItem
+{
+    OUString m_aStr;
+    sal_IntPtr m_nValue;
+
+    ImplResStringItem( const OUString& rStr, long nValue = 0 ) :
+        m_aStr(rStr),
+        m_nValue(nValue)
+    { }
+};
+
+}
+
+struct ResStringArray::Impl
+{
+    std::vector<ImplResStringItem> m_aStrings;
+};
+
+ResStringArray::ResStringArray( const ResId& rResId ) :
+    mpImpl(new Impl)
 {
     rResId.SetRT( RSC_STRINGARRAY );
     ResMgr* pMgr = rResId.GetResMgr();
@@ -32,14 +55,14 @@ ResStringArray::ResStringArray( const ResId& rResId )
         const sal_uInt32 nItems = pMgr->ReadLong();
         if ( nItems )
         {
-            m_aStrings.reserve( nItems );
+            mpImpl->m_aStrings.reserve( nItems );
             for ( sal_uInt32 i = 0; i < nItems; i++ )
             {
                 // load string
-                m_aStrings.push_back( ImplResStringItem( pMgr->ReadString() ) );
+                mpImpl->m_aStrings.push_back(ImplResStringItem(pMgr->ReadString()));
 
                 // load value
-                m_aStrings[i].m_nValue = pMgr->ReadLong();
+                mpImpl->m_aStrings[i].m_nValue = pMgr->ReadLong();
             }
         }
     }
@@ -47,14 +70,30 @@ ResStringArray::ResStringArray( const ResId& rResId )
 
 ResStringArray::~ResStringArray()
 {
+    delete mpImpl;
+}
+
+OUString ResStringArray::GetString( sal_uInt32 nIndex ) const
+{
+    return (nIndex < mpImpl->m_aStrings.size()) ? mpImpl->m_aStrings[nIndex].m_aStr : OUString();
+}
+
+sal_IntPtr ResStringArray::GetValue( sal_uInt32 nIndex ) const
+{
+    return (nIndex < mpImpl->m_aStrings.size()) ? mpImpl->m_aStrings[nIndex].m_nValue : -1;
+}
+
+sal_uInt32 ResStringArray::Count() const
+{
+    return sal_uInt32(mpImpl->m_aStrings.size());
 }
 
 sal_uInt32 ResStringArray::FindIndex( sal_IntPtr nValue ) const
 {
-    const sal_uInt32 nItems = m_aStrings.size();
+    const sal_uInt32 nItems = mpImpl->m_aStrings.size();
     for ( sal_uInt32 i = 0; i < nItems; i++ )
     {
-        if ( m_aStrings[i].m_nValue == nValue )
+        if (mpImpl->m_aStrings[i].m_nValue == nValue)
             return i;
     }
     return RESARRAY_INDEX_NOTFOUND;
@@ -62,8 +101,8 @@ sal_uInt32 ResStringArray::FindIndex( sal_IntPtr nValue ) const
 
 sal_uInt32 ResStringArray::AddItem( const OUString& rString, sal_IntPtr nValue )
 {
-    m_aStrings.push_back( ImplResStringItem( rString, nValue));
-    return m_aStrings.size();
+    mpImpl->m_aStrings.push_back(ImplResStringItem(rString, nValue));
+    return mpImpl->m_aStrings.size();
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 1b9aaba0bfe8bc0872e7ea9f9aef5961e4b52f7c
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Nov 18 21:39:25 2014 -0500

    typo: boostrap -> bootstrap.
    
    Change-Id: I73eb3b253d43618cbe8e743e3ac5687be2ea3e4d

diff --git a/include/rtl/bootstrap.h b/include/rtl/bootstrap.h
index a4e109f..5a6e00d 100644
--- a/include/rtl/bootstrap.h
+++ b/include/rtl/bootstrap.h
@@ -160,13 +160,14 @@ typedef void * rtlBootstrapHandle;
    Opens a bootstrap argument container.
    @param pIniName [in]   The name of the ini-file to use, if <code>NULL</code> defaults
                           to the excutables name
-   @return                Handle for a boostrap argument container
+   @return                Handle for a bootstrap argument
+                          container
 */
 SAL_DLLPUBLIC rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open(rtl_uString * pIniName)
     SAL_THROW_EXTERN_C();
 
 /**
-   Closes a boostrap agument container.
+   Closes a bootstrap agument container.
    @param handle [in]     The handle got by <code>rtl_bootstrap_args_open()</code>
 */
 SAL_DLLPUBLIC void SAL_CALL rtl_bootstrap_args_close(rtlBootstrapHandle handle)


More information about the Libreoffice-commits mailing list