[Multimedia] Moved enums of MediaTool into separate files. (#92)
[platform/core/csapi/tizenfx.git] / src / Tizen.System.Storage / Storage / StorageManager.cs
1 /*
2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17 using System;
18 using System.Collections.Generic;
19
20 namespace Tizen.System
21 {
22     /// <summary>
23     /// The StorageManager provides the properties or methods to access storage in the device.
24     /// </summary>
25     /// <since_tizen> 3 </since_tizen>
26     public static class StorageManager
27     {
28         private const string LogTag = "Tizen.System";
29
30         /// <summary>
31         /// List of all storage in the device.
32         /// </summary>
33         /// <since_tizen> 3 </since_tizen>
34         public static IEnumerable<Storage> Storages
35         {
36             get
37             {
38                 List<Storage> storageList = new List<Storage>();
39                 Interop.Storage.StorageDeviceSupportedCallback cb = (int storageID, Interop.Storage.StorageArea type, Interop.Storage.StorageState state, string rootDirectory, IntPtr userData) =>
40                 {
41                     storageList.Add(new Storage(storageID, type, state, rootDirectory));
42                     return true;
43                 };
44
45                 Interop.Storage.ErrorCode err = Interop.Storage.StorageManagerGetForeachDeviceSupported(cb, IntPtr.Zero);
46                 if (err != Interop.Storage.ErrorCode.None)
47                 {
48                     Log.Warn(LogTag, string.Format("Failed to get storage list. err = {0}", err));
49                 }
50                 return storageList;
51             }
52         }
53     }
54 }