Tizen 2.1 base
[framework/osp/uifw.git] / src / graphics / FGrp_FontMemoryManager.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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        FGrp_FontMemoryManager.h
20  * @brief       This is the header file for _FontMemoryManager class.
21  *
22  */
23
24 #ifndef _FGRP_INTERNAL_FONT_MEMORY_MANAGER_H_
25 #define _FGRP_INTERNAL_FONT_MEMORY_MANAGER_H_
26
27
28 namespace Tizen { namespace Graphics
29 {
30
31 class _FontMemoryManager
32 {
33 public:
34         enum Type
35         {
36                 TYPE_COUNT = 0,
37                 TYPE_SIZE,
38                 TYPE_FIXED_MEMORY
39         };
40
41         class IMemoryAllocator
42         {
43         public:
44                 virtual ~IMemoryAllocator(void) {}
45                 virtual void* Alloc(unsigned long size) = 0;
46                 virtual void Free(void* pMem) = 0;
47                 virtual unsigned long GetRemainedMemory(void) = 0;
48         };
49
50         _FontMemoryManager(_FontMemoryManager::Type typetype, int size);
51         virtual ~_FontMemoryManager(void);
52
53         void* Alloc(unsigned long size);
54         void Free(void* pMem);
55         unsigned long GetRemainedMemory(void);
56         bool IsValid(void) const;
57
58 private:
59         _FontMemoryManager(const _FontMemoryManager& obj);
60         _FontMemoryManager& operator =(const _FontMemoryManager& rhs);
61         _FontMemoryManager* operator &(void);
62
63         IMemoryAllocator* __pAllocator;
64 };
65
66 }} // Tizen::Graphics
67
68 #endif // _FGRP_INTERNAL_FONT_MEMORY_MANAGER_H_