[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