update credits
[LibreOffice.git] / include / tools / tempfile.hxx
blob8ef8c574cf7cc7954c08ebd2a95cfc0317ab9c3c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef _TOOLS_TEMPFILE_HXX
20 #define _TOOLS_TEMPFILE_HXX
22 #include <tools/string.hxx>
23 #include "tools/toolsdllapi.h"
25 struct TempFile_Impl;
26 class TOOLS_DLLPUBLIC TempFile
28 TempFile_Impl* pImp;
29 sal_Bool bKillingFileEnabled;
31 public:
32 /** Create a temporary file in the default tempfile folder. */
33 TempFile();
35 /** Create a temporary file in the default tempfile folder; its name starts
36 with some given characters followed by a counter ( example:
37 rLeadingChars="abc" means "abc0", "abc1" and so on, depending on
38 existing files in that folder ).
40 The extension string may be f.e. ".txt" or "", if no extension string is
41 given, ".tmp" is used.
43 TempFile( const String& rLeadingChars, const String* pExtension=NULL );
45 /** TempFile will be removed from disk in dtor if EnableKillingTempFile was
46 called before. TempDirs will be removed recursively in that case. */
47 ~TempFile();
49 sal_Bool IsValid() const;
51 /** Returns the real name of the tempfile in file URL scheme. */
52 String GetName() const;
54 /** If enabled the file will be removed from disk when the dtor is called
55 (default is not enabled) */
56 void EnableKillingFile( sal_Bool bEnable=sal_True ) { bKillingFileEnabled = bEnable; }
58 sal_Bool IsKillingFileEnabled() const { return bKillingFileEnabled; }
60 /** Only create a name for a temporary file that would be valid at that moment. */
61 static String CreateTempName();
64 #endif
66 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */