summaryrefslogtreecommitdiff
path: root/tools/inc/tools/tempfile.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'tools/inc/tools/tempfile.hxx')
-rw-r--r--tools/inc/tools/tempfile.hxx80
1 files changed, 80 insertions, 0 deletions
diff --git a/tools/inc/tools/tempfile.hxx b/tools/inc/tools/tempfile.hxx
new file mode 100644
index 000000000000..ff8ac0b2b6e5
--- /dev/null
+++ b/tools/inc/tools/tempfile.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * 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: tempfile.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * 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 _TOOLS_TEMPFILE_HXX
+#define _TOOLS_TEMPFILE_HXX
+
+#include <tools/string.hxx>
+#include "tools/toolsdllapi.h"
+
+struct TempFile_Impl;
+class TOOLS_DLLPUBLIC TempFile
+{
+ TempFile_Impl* pImp;
+ sal_Bool bKillingFileEnabled;
+
+public:
+ // Create a temporary file or directory in a given folder or the default tempfile folder
+ TempFile( const String* pParent=NULL, sal_Bool bDirectory=sal_False );
+
+ // Create a temporary file or directory in a given folder or the default tempfile folder; its name starts
+ // with some given characters followed by a counter ( example: rLeadingChars="abc" means "abc0","abc1"
+ // and so on, depending on existing files in that folder ).
+ // The extension string may be f.e. ".txt" or "", if no extension string is given, ".tmp" is used
+ TempFile( const String& rLeadingChars, const String* pExtension=NULL, const String* pParent=NULL, sal_Bool bDirectory=sal_False );
+
+ // TempFile will be removed from disk in dtor if EnableKillingTempFile was called before.
+ // TempDirs will be removed recursively in that case.
+ ~TempFile();
+
+ sal_Bool IsValid() const;
+
+ // Returns the real name of the tempfile in file URL scheme.
+ String GetName() const;
+
+ // If enabled the file will be removed from disk when the dtor is called ( default is not enabled )
+ void EnableKillingFile( sal_Bool bEnable=sal_True )
+ { bKillingFileEnabled = bEnable; }
+
+ sal_Bool IsKillingFileEnabled() const
+ { return bKillingFileEnabled; }
+
+ // Only create a name for a temporary file that would be valid at that moment.
+ static String CreateTempName( const String* pParent=NULL );
+
+ // The TempNameBase is a folder in the default ( system ) tempfile folder.
+ // This subfolder will be used if a TempFile or TempName is created without a parent name.
+ // The caller of the SetTempNameBase is responsible for deleting this folder and all temporary files in it.
+ // The argument must be a simple name, not a complete URL.
+ // The return value of both methods is the complete URL of the tempname base folder.
+ static String SetTempNameBaseDirectory( const String &rBaseName );
+ static String GetTempNameBaseDirectory();
+};
+
+#endif