0ff6da24237c3e5b6f1a8d1ce524b22f25483f81
[platform/framework/native/appfw.git] / src / io / inc / FIo_NormalFile.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file        FIo_NormalFile.h
20  * @brief       This is the header file for the _NormalFile class.
21  *
22  * This header file contains the declarations of the %_NormalFile class.
23  */
24
25 #ifndef _FIO_INTERNAL_NORMALFILE_H_
26 #define _FIO_INTERNAL_NORMALFILE_H_
27
28 #include <FBaseInternalTypes.h>
29 #include <FBaseString.h>
30 #include <FBaseByteBuffer.h>
31 #include <FBaseDateTime.h>
32 #include <FBaseColIList.h>
33 #include <FBaseResult.h>
34 #include <FIoFile.h>
35
36 #include <FIo_FileImpl.h>
37 #include <FIo_IFileCore.h>
38
39 namespace Tizen { namespace Io
40 {
41
42 class _NormalFile
43         : public Tizen::Base::Object
44         , public _IFileCore
45 {
46
47 public:
48         _NormalFile(void);
49
50         result Construct(const Tizen::Base::String& filePath, const char* pOpenMode);
51
52         virtual ~_NormalFile(void);
53
54         result Read(Tizen::Base::ByteBuffer& buffer);
55
56         int Read(void* buffer, int length);
57
58         result Read(Tizen::Base::String& buffer);
59
60         result ReadN(char** buffer, int& length);
61
62         result Write(const Tizen::Base::ByteBuffer& buffer);
63
64         result Write(const void* buffer, int length);
65
66         result Write(const Tizen::Base::String& buffer);
67
68         result Flush(void);
69
70         int Tell(void) const;
71
72         result Seek(FileSeekPosition position, long offset);
73
74         result Truncate(int length);
75
76         Tizen::Base::String GetName(void);
77
78         virtual FILE* GetFilePointer(void)
79         {
80                 return __pFile;
81         }
82
83 private:
84         Tizen::Base::String __filePath;
85
86         FILE* __pFile;
87
88 }; // _NormalFile
89
90 }} // Tizen::Io
91
92 #endif // _FIO_INTERNAL_NORMALFILE_H_
93