2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file FSysEnvironment.h
19 * @brief This is the header file for the %Environment class.
21 * This header file contains the declarations of the %Environment class.
24 #ifndef _FSYS_ENVIRONMENT_H_
25 #define _FSYS_ENVIRONMENT_H_
27 #include <FBaseString.h>
29 namespace Tizen { namespace System
33 * @enum PredefinedDirectoryType
35 * Defines the type of the pre-defined directory used to classify files to be stored.
39 enum PredefinedDirectoryType
41 PREDEFINED_DIRECTORY_IMAGES = 0, /**< The directory for image files to be stored in internal storage (read-write permission) */
42 PREDEFINED_DIRECTORY_SOUNDS, /**< The directory for sound files to be stored in internal storage (read-write permission) */
43 PREDEFINED_DIRECTORY_VIDEOS, /**< The directory for video files to be stored in internal storage (read-write permission) */
44 PREDEFINED_DIRECTORY_CAMERA, /**< The directory for files to be stored in internal storage by camera application (read-write permission) */
45 PREDEFINED_DIRECTORY_DOWNLOADS, /**< The directory for files to be stored in internal storage by download manager (read-write permission) */
46 PREDEFINED_DIRECTORY_OTHERS, /**< The directory for other files to be stored in internal storage (read-write permission) */
47 PREDEFINED_DIRECTORY_SYSTEM_RINGTONES, /**< The directory for preloaded system ringtone files in internal storage (read only permission) @b Since: @b 2.1*/
49 PREDEFINED_DIRECTORY_EXTERNAL_IMAGES = 100, /**< The directory for image files to be stored in external MMC (read-write permission) */
50 PREDEFINED_DIRECTORY_EXTERNAL_SOUNDS, /**< The directory for sound files to be stored in external MMC (read-write permission) */
51 PREDEFINED_DIRECTORY_EXTERNAL_VIDEOS, /**< The directory for video files to be stored in external MMC (read-write permission) */
52 PREDEFINED_DIRECTORY_EXTERNAL_CAMERA, /**< The directory for files to be stored in external MMC by camera application (read-write permission) */
53 PREDEFINED_DIRECTORY_EXTERNAL_DOWNLOADS, /**< The directory for files to be stored in external MMC by download manager (read-write permission) */
54 PREDEFINED_DIRECTORY_EXTERNAL_OTHERS, /**< The directory for other files to be stored in external MMC (read-write permission) */
56 PREDEFINED_DIRECTORY_APPLICATIONS = 200, /**< The directory for applications to be installed in internal storage (read-only permission) */
57 PREDEFINED_DIRECTORY_EXTERNAL_APPLICATIONS, /**< The directory for applications to be installed in external MMC (read-only permission) */
62 * @brief This class provides methods for getting the system environment variables.
66 * @final This class is not intended for extension.
68 * The %Environment class provides methods for getting the system environment variables.
70 class _OSP_EXPORT_ Environment
75 * Gets the path for the media directory that is usually used to store media contents.
79 * @return The media directory path
81 static Tizen::Base::String GetMediaPath(void);
84 * Gets the path for the default download directory that is usually used to store downloaded contents by the Tizen::Content::DownloadManager class.
88 * @return The default download directory path
90 static Tizen::Base::String GetDefaultDownloadPath(void);
93 * Gets the path for the external storage.
97 * @return The external storage directory path
99 static Tizen::Base::String GetExternalStoragePath(void);
102 * Gets the directory path according to the pre-defined directory type.
106 * @return The pre-defined directory path according to the specified @c dirType, @n
107 * else an empty string if the specified @c dirType is invalid
108 * @param[in] dirType The pre-defined directory type
109 * @remarks The directory path for some directory types such as IMAGES, SOUNDS, VIDEOS, CAMERA, DOWNLOADS, and OTHERS may not yet exist,
110 * so you must make sure that it exists before using it.
111 * @see Tizen::Io::Directory::Create()
113 static Tizen::Base::String GetPredefinedPath(PredefinedDirectoryType dirType);
117 * The implementation of this constructor is intentionally blank to prohibit creation of an instance.
124 * The implementation of this destructor is intentionally blank because an instance cannot be created.
131 * This copy constructor is intentionally declared as private to prohibit copying.
135 Environment(const Environment& rhs);
138 * This copy assignment operator is intentionally declared as private to prohibit copying.
142 Environment& operator =(const Environment& rhs);
148 #endif // _FSYS_ENVIRONMENT_H_