7442190a1fc7b3b8e99d02d192abdd3290bf927e
[profile/tv/apps/dotnet/mediahub.git] / TVMediaHub / TVMediaHub.Tizen / Utils / InOutDbgRAII.cs
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.1 (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://floralicense.org/license/
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.Runtime.CompilerServices;
18
19 namespace TVMediaHub.Tizen.Utils
20 {
21     /// <summary>
22     /// A class to display a log message which developer want to check
23     /// </summary>
24     public class InOutDbgRAII
25     {
26         private string function;
27         private string fileName;
28
29         /// <summary>
30         /// Displays a log message which developer want to check
31         /// </summary>
32         /// <param name="file">A file name that debugging message is exist</param>
33         /// <param name="func">A function name that debugging message is exist</param>
34         public InOutDbgRAII([CallerFilePath] System.String file = "", [CallerMemberName] System.String func = "")
35         {
36             function = func;
37             int idx = file.LastIndexOf("\\") + 1;
38             fileName = file.Substring(idx, file.Length - idx);
39
40             DbgPort.D("[>>>] " + function + ", " + fileName, "", "InOut");
41         }
42
43         // This is only for the debugging purpose, due to performance issue.
44         ~InOutDbgRAII()
45         {
46             DbgPort.D("[<<<] " + function + ", " + fileName, "", "InOut");
47         }
48     }
49 }