mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-04 16:15:25 +00:00
73 lines
2.8 KiB
C++
73 lines
2.8 KiB
C++
#ifndef nsPlacesImportExportService_h__
|
|
#define nsPlacesImportExportService_h__
|
|
|
|
#include "nsIPlacesImportExportService.h"
|
|
|
|
#include "nsCOMPtr.h"
|
|
#include "nsILocalFile.h"
|
|
#include "nsIOutputStream.h"
|
|
#include "nsIFaviconService.h"
|
|
#include "nsIAnnotationService.h"
|
|
#include "nsILivemarkService.h"
|
|
#include "nsINavHistoryService.h"
|
|
#include "nsINavBookmarksService.h"
|
|
#include "nsIChannel.h"
|
|
|
|
class nsPlacesImportExportService : public nsIPlacesImportExportService,
|
|
public nsINavHistoryBatchCallback
|
|
{
|
|
public:
|
|
NS_DECL_ISUPPORTS
|
|
NS_DECL_NSIPLACESIMPORTEXPORTSERVICE
|
|
NS_DECL_NSINAVHISTORYBATCHCALLBACK
|
|
nsPlacesImportExportService();
|
|
|
|
/**
|
|
* Obtains the service's object.
|
|
*/
|
|
static nsPlacesImportExportService* GetSingleton();
|
|
|
|
/**
|
|
* Initializes the service's object. This should only be called once.
|
|
*/
|
|
nsresult Init();
|
|
|
|
private:
|
|
static nsPlacesImportExportService* gImportExportService;
|
|
virtual ~nsPlacesImportExportService();
|
|
|
|
protected:
|
|
nsCOMPtr<nsIFaviconService> mFaviconService;
|
|
nsCOMPtr<nsIAnnotationService> mAnnotationService;
|
|
nsCOMPtr<nsINavBookmarksService> mBookmarksService;
|
|
nsCOMPtr<nsINavHistoryService> mHistoryService;
|
|
nsCOMPtr<nsILivemarkService> mLivemarkService;
|
|
|
|
nsCOMPtr<nsIChannel> mImportChannel;
|
|
PRBool mIsImportDefaults;
|
|
|
|
nsresult ImportHTMLFromFileInternal(nsILocalFile* aFile, PRBool aAllowRootChanges,
|
|
PRInt64 aFolder, PRBool aIsImportDefaults);
|
|
nsresult ImportHTMLFromURIInternal(nsIURI* aURI, PRBool aAllowRootChanges,
|
|
PRInt64 aFolder, PRBool aIsImportDefaults);
|
|
nsresult WriteContainer(nsINavHistoryResultNode* aFolder, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteContainerHeader(nsINavHistoryResultNode* aFolder, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteTitle(nsINavHistoryResultNode* aItem, nsIOutputStream* aOutput);
|
|
nsresult WriteItem(nsINavHistoryResultNode* aItem, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteLivemark(nsINavHistoryResultNode* aFolder, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteContainerContents(nsINavHistoryResultNode* aFolder, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteSeparator(nsINavHistoryResultNode* aItem, const nsACString& aIndent, nsIOutputStream* aOutput);
|
|
nsresult WriteDescription(PRInt64 aId, PRInt32 aType, nsIOutputStream* aOutput);
|
|
|
|
inline nsresult EnsureServiceState() {
|
|
NS_ENSURE_STATE(mHistoryService);
|
|
NS_ENSURE_STATE(mFaviconService);
|
|
NS_ENSURE_STATE(mAnnotationService);
|
|
NS_ENSURE_STATE(mBookmarksService);
|
|
NS_ENSURE_STATE(mLivemarkService);
|
|
return NS_OK;
|
|
}
|
|
};
|
|
|
|
#endif // nsPlacesImportExportService_h__
|