summaryrefslogtreecommitdiff
path: root/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx')
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx137
1 files changed, 137 insertions, 0 deletions
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
new file mode 100644
index 000000000000..26d79e19c573
--- /dev/null
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx
@@ -0,0 +1,137 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: MNSProfileDiscover.hxx,v $
+ * $Revision: 1.6 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __MNSProfileDiscover_h___
+#define __MNSProfileDiscover_h___
+
+#ifndef MINIMAL_PROFILEDISCOVER
+#include "mozilla_profile_discover.h"
+#endif
+
+#include <sal/types.h>
+#include <osl/diagnose.h>
+#include <osl/conditn.hxx>
+#ifndef _COM_SUN_STAR_MOZILLA_MOZILLPRODUCTTYPE_HPP_
+#include <com/sun/star/mozilla/MozillaProductType.hpp>
+#endif
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <com/sun/star/uno/Sequence.hxx>
+#include <rtl/ustring.hxx>
+
+#include <vector>
+#include <map>
+
+#ifdef XP_OS2
+#define INCL_DOSERRORS
+#define INCL_DOSFILEMGR
+#include <os2.h>
+#endif
+
+using namespace com::sun::star::mozilla;
+namespace connectivity
+{
+ namespace mozab
+ {
+ class ProfileStruct;
+ }
+}
+typedef ::std::map < ::rtl::OUString, ::connectivity::mozab::ProfileStruct* > ProfileList;
+namespace connectivity
+{
+ namespace mozab
+ {
+ class ProfileStruct
+ {
+ public:
+ ProfileStruct(MozillaProductType aProduct,::rtl::OUString aProfileName,
+#ifdef MINIMAL_PROFILEDISCOVER
+ const ::rtl::OUString &aProfilePath
+#else
+ nsILocalFile * aProfilePath
+#endif
+ );
+ MozillaProductType getProductType() { return product;}
+ ::rtl::OUString getProfileName(){ return profileName;}
+ ::rtl::OUString getProfilePath() ;
+#ifndef MINIMAL_PROFILEDISCOVER
+ nsILocalFile *getProfileLocal(){ return profilePath;}
+#endif
+ protected:
+ MozillaProductType product;
+ ::rtl::OUString profileName;
+#ifdef MINIMAL_PROFILEDISCOVER
+ ::rtl::OUString profilePath;
+#else
+ nsCOMPtr<nsILocalFile> profilePath;
+#endif
+ };
+
+ class ProductStruct
+ {
+ public:
+ void setCurrentProfile(::rtl::OUString aProfileName){mCurrentProfileName = aProfileName;}
+
+ ::rtl::OUString mCurrentProfileName;
+
+ ProfileList mProfileList;
+ };
+
+ //Used to query profiles information
+ class ProfileAccess
+ {
+ public:
+
+ virtual ~ProfileAccess();
+ ProfileAccess();
+ ::rtl::OUString getProfilePath( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
+ ::sal_Int32 getProfileCount( ::com::sun::star::mozilla::MozillaProductType product ) throw (::com::sun::star::uno::RuntimeException);
+ ::sal_Int32 getProfileList( ::com::sun::star::mozilla::MozillaProductType product, ::com::sun::star::uno::Sequence< ::rtl::OUString >& list ) throw (::com::sun::star::uno::RuntimeException);
+ ::rtl::OUString getDefaultProfile( ::com::sun::star::mozilla::MozillaProductType product ) throw (::com::sun::star::uno::RuntimeException);
+ ::sal_Bool SAL_CALL isProfileLocked( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
+ ::sal_Bool SAL_CALL getProfileExists( ::com::sun::star::mozilla::MozillaProductType product, const ::rtl::OUString& profileName ) throw (::com::sun::star::uno::RuntimeException);
+ protected:
+ ProductStruct m_ProductProfileList[4];
+ sal_Int32 LoadProductsInfo();
+#ifndef MINIMAL_PROFILEDISCOVER
+ nsresult LoadMozillaProfiles();
+#endif
+ sal_Int32 LoadXPToolkitProfiles(MozillaProductType product);
+#ifndef MINIMAL_PROFILEDISCOVER
+ //used by isProfileLocked
+ nsresult isExistFileOrSymlink(nsILocalFile* aFile,PRBool *bExist);
+ nsresult isLockExist(nsILocalFile* aFile);
+#endif
+ };
+
+ }
+}
+
+#endif // __MNSProfileDiscover_h___
+