Merge "Remove the deferred RotationObserver from the Adaptor" into devel/master
[platform/core/uifw/dali-adaptor.git] / dali / internal / system / windows / file-closer-win.cpp
1 /*\r
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  *\r
16  */\r
17 \r
18 // Internal\r
19 #include <dali/integration-api/debug.h>\r
20 #include <dali/public-api/common/dali-vector.h>\r
21 #include <dali/internal/system/common/file-closer.h>\r
22 \r
23 // External\r
24 #include <CustomFile.h>\r
25 #include <string>\r
26 \r
27 namespace Dali\r
28 {\r
29 \r
30 namespace Internal\r
31 {\r
32 \r
33 namespace Platform\r
34 {\r
35 \r
36 namespace InternalFile\r
37 {\r
38 \r
39 std::string GetRealName( const char *name )\r
40 {\r
41   if( NULL != name && '*' == name[0] )\r
42   {\r
43     std::string envName;\r
44 \r
45     const char *p = name + 1;\r
46     \r
47     while( 0 != *p && '*' != *p )\r
48     {\r
49       envName.push_back( *p );\r
50       p++;\r
51     }\r
52 \r
53     p++;\r
54 \r
55     char *envValue = std::getenv( envName.c_str() );\r
56 \r
57     std::string realName = envValue;\r
58     realName += p;\r
59 \r
60     return realName;\r
61   }\r
62   else\r
63   {\r
64     return "";\r
65   }\r
66 }\r
67 \r
68 FILE *FOpen( const char *name, const char *mode )\r
69 {\r
70   if( NULL != name && '*' == name[0] )\r
71   {\r
72     std::string realName = GetRealName( name );\r
73     return (FILE*)CustomFile::FOpen( realName.c_str(), mode );\r
74   }\r
75   else\r
76   {\r
77     return (FILE*)CustomFile::FOpen( name, mode );\r
78   }\r
79 }\r
80 \r
81 FILE *FMemopen( void *__s, size_t __len, const char *__modes )\r
82 {\r
83   FILE *ret = (FILE*)CustomFile::FMemopen( __s, __len, __modes );\r
84   return ret;\r
85 }\r
86 \r
87 size_t FRead( void*  _Buffer, size_t _ElementSize, size_t _ElementCount, FILE*  _Stream )\r
88 {\r
89   return CustomFile::FRead( _Buffer, _ElementSize, _ElementCount, _Stream );\r
90 }\r
91 \r
92 int FClose( FILE *__stream )\r
93 {\r
94   return CustomFile::FClose( __stream );\r
95 }\r
96 \r
97 void FWrite( void *buf, int size, int count, FILE *fp )\r
98 {\r
99   CustomFile::FWrite( buf, size * count, fp );\r
100 }\r
101 \r
102 int FSeek( FILE *fp, int offset, int origin )\r
103 {\r
104   return CustomFile::FSeek( fp, offset, origin );\r
105 }\r
106 \r
107 int FTell( FILE *fp )\r
108 {\r
109   return CustomFile::FTell( fp );\r
110 }\r
111 \r
112 bool FEof( FILE *fp )\r
113 {\r
114   return CustomFile::FEof( fp );\r
115 }\r
116 } //InternalFile\r
117 } //Platform\r
118 } //Internal\r
119 } //Dali\r