You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2016/03/10 01:33:12 UTC

svn commit: r1734340 - /openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx

Author: orcmid
Date: Thu Mar 10 00:33:11 2016
New Revision: 1734340

URL: http://svn.apache.org/viewvc?rev=1734340&view=rev
Log:
Include the overlooked osl/profile.hxx where it is available independent of platform

Added:
    openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx

Added: openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx?rev=1734340&view=auto
==============================================================================
--- openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx (added)
+++ openoffice/branches/olcProfileNano/sal/inc/osl/profile.hxx Thu Mar 10 00:33:11 2016
@@ -0,0 +1,200 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+
+
+#ifndef _OSL_PROFILE_HXX_
+#define _OSL_PROFILE_HXX_
+
+#include "profile.h"
+#include <rtl/ustring.hxx>
+#include <string.h>
+#include <list>
+
+namespace osl {
+
+	typedef oslProfileOption ProfileOption;
+
+	const int Profile_DEFAULT   = osl_Profile_DEFAULT;
+	const int Profile_SYSTEM    = osl_Profile_SYSTEM;    /* use system depended functinality */
+	const int Profile_READLOCK  = osl_Profile_READLOCK;  /* lock file for reading            */
+	const int Profile_WRITELOCK = osl_Profile_WRITELOCK; /* lock file for writing            */
+
+    /** Deprecated API.
+        @deprecated
+    */
+	class Profile {
+		oslProfile profile;
+
+	public:
+		/** Open or create a configuration profile.
+			@return 0 if the profile could not be created, otherwise a handle to the profile.
+		*/
+		Profile(const rtl::OUString strProfileName, oslProfileOption Options = Profile_DEFAULT )
+		{
+			profile = osl_openProfile(strProfileName.pData, Options);
+			if( ! profile )
+				throw std::exception();
+		}
+				
+
+		/** Close the opened profile an flush all data to the disk.
+			@param Profile handle to a opened profile.
+		*/
+		~Profile()
+		{
+			osl_closeProfile(profile);
+		}
+
+
+		sal_Bool flush()
+		{
+			return osl_flushProfile(profile);
+		}
+
+		rtl::OString readString( const rtl::OString& rSection, const rtl::OString& rEntry, 
+								 const rtl::OString& rDefault)
+		{
+			sal_Char aBuf[1024];
+			return osl_readProfileString( profile,
+										  rSection.getStr(),
+										  rEntry.getStr(),
+										  aBuf,
+										  sizeof( aBuf ),
+										  rDefault.getStr() ) ? rtl::OString( aBuf ) : rtl::OString();
+
+		}
+
+		sal_Bool readBool( const rtl::OString& rSection, const rtl::OString& rEntry, sal_Bool bDefault )
+		{
+			return osl_readProfileBool( profile, rSection.getStr(), rEntry.getStr(), bDefault );
+		}
+
+		sal_uInt32 readIdent(const rtl::OString& rSection, const rtl::OString& rEntry, 
+							 sal_uInt32 nFirstId, const std::list< rtl::OString >& rStrings,
+							 sal_uInt32 nDefault)
+		{
+			int nItems = rStrings.size();
+			const sal_Char** pStrings = new const sal_Char*[ nItems+1 ];
+			std::list< rtl::OString >::const_iterator it = rStrings.begin();
+			nItems = 0;
+			while( it != rStrings.end() )
+			{
+				pStrings[ nItems++ ] = (*it).getStr();
+				++it;
+			}
+			pStrings[ nItems ] = NULL;
+			sal_uInt32 nRet = osl_readProfileIdent( profile, rSection.getStr(), rEntry.getStr(), nFirstId, pStrings, nDefault);
+			delete pStrings;
+			return nRet;
+		}
+
+		sal_Bool writeString(const rtl::OString& rSection, const rtl::OString& rEntry, 
+							 const rtl::OString& rString)
+		{
+			return osl_writeProfileString( profile, rSection.getStr(), rEntry.getStr(), rString.getStr());
+		}
+
+		sal_Bool writeBool(const rtl::OString& rSection, const rtl::OString& rEntry, sal_Bool Value)
+		{
+			return osl_writeProfileBool( profile, rSection.getStr(), rEntry.getStr(), Value);
+		}
+
+		sal_Bool writeIdent(const rtl::OString& rSection, const rtl::OString& rEntry, 
+							sal_uInt32 nFirstId, const std::list< rtl::OString >& rStrings, 
+							sal_uInt32 nValue)
+		{
+			int nItems = rStrings.size();
+			const sal_Char** pStrings = new const sal_Char*[ nItems+1 ];
+			std::list< rtl::OString >::const_iterator it = rStrings.begin();
+			nItems = 0;
+			while( it != rStrings.end() )
+			{
+				pStrings[ nItems++ ] = (*it).getStr();
+				++it;
+			}
+			pStrings[ nItems ] = NULL;
+			sal_Bool bRet =
+				osl_writeProfileIdent( profile, rSection.getStr(), rEntry.getStr(), nFirstId, pStrings, nValue );
+			delete pStrings;
+			return bRet;
+		}
+
+		/** Acquire the mutex, block if already acquired by another thread.
+			@param Profile handle to a opened profile.
+			@return False if section or entry could not be found.
+		*/
+		sal_Bool removeEntry(const rtl::OString& rSection, const rtl::OString& rEntry)
+		{
+			return osl_removeProfileEntry( profile, rSection.getStr(), rEntry.getStr());
+		}
+
+		/** Get all entries belonging to the specified section.
+			@param Profile handle to a opened profile.
+			@return Pointer to a array of pointers.
+		*/
+		std::list< rtl::OString > getSectionEntries(const rtl::OString& rSection )
+		{
+			std::list< rtl::OString > aEntries;
+
+			// count buffer size necessary
+			int n = osl_getProfileSectionEntries( profile, rSection.getStr(), NULL, 0 );
+			if( n > 1 )
+			{
+				sal_Char* pBuf = new sal_Char[ n+1 ];
+				osl_getProfileSectionEntries( profile, rSection.getStr(), pBuf, n+1 );
+				int nLen;
+				for( n = 0; ( nLen = strlen( pBuf+n ) ); n += nLen+1 )
+					aEntries.push_back( rtl::OString( pBuf+n ) );
+				delete pBuf;
+			}
+
+			return aEntries;
+		}
+
+		/** Get all section entries
+			@param Profile handle to a opened profile.
+			@return Pointer to a array of pointers.
+		*/
+		std::list< rtl::OString > getSections()
+		{
+			std::list< rtl::OString > aSections;
+
+			// count buffer size necessary
+			int n = osl_getProfileSections( profile, NULL, 0 );
+			if( n > 1 )
+			{
+				sal_Char* pBuf = new sal_Char[ n+1 ];
+				osl_getProfileSections( profile, pBuf, n+1 );
+				int nLen;
+				for( n = 0; ( nLen = strlen( pBuf+n ) ); n += nLen+1 )
+					aSections.push_back( rtl::OString( pBuf+n ) );
+				delete pBuf;
+			}
+
+			return aSections;
+		}
+	};
+}
+
+#endif	/* _OSL_PROFILE_HXX_ */
+
+