Add cache system
authorJoohyun Kim <joohyune.kim@samsung.com>
Wed, 21 Aug 2013 06:57:31 +0000 (15:57 +0900)
committerJoohyun Kim <joohyune.kim@samsung.com>
Wed, 21 Aug 2013 07:25:22 +0000 (16:25 +0900)
Change-Id: Ie0a8c3a5deaa4420fa215239cdc18da9b1506b0b
Signed-off-by: Joohyun Kim <joohyune.kim@samsung.com>
src/system/FSys_SystemInfoService.cpp
src/system/FSys_SystemInfoService.h

index 25e79f4..717606d 100644 (file)
@@ -65,8 +65,6 @@ static const wchar_t* _CAMERA_FRONT = L"http://tizen.org/feature/camera.front";
 static const wchar_t* _CAMERA_FRONT_FLASH = L"http://tizen.org/feature/camera.front.flash";
 //Database
 static const wchar_t* _DATABASE_ENCRYPTION = L"http://tizen.org/feature/database.encryption";
-static const char* _DATABASE_LIBRARY_PATH = "/usr/lib/libsqlite3.so.0";
-static const char* _DATABASE_ENCRYPTION_SYMBOL = "sqlite3_key";
 //FM Radio
 static const wchar_t* _FMRADIO = L"http://tizen.org/feature/fmradio";
 //Graphic
@@ -74,8 +72,6 @@ static const wchar_t* _GRAPHIC_ACCELERATION = L"http://tizen.org/feature/graphic
 //Input
 static const wchar_t* _INPUT_KEYBOARD = L"http://tizen.org/feature/input.keyboard";
 static const wchar_t* _INPUT_KEYBOARD_LAYOUT = L"http://tizen.org/feature/input.keyboard.layout";
-static const wchar_t* _INPUT_KEYS_BACK = L"http://tizen.org/feature/input.keys.back";
-static const wchar_t* _INPUT_KEYS_MENU = L"http://tizen.org/feature/input.keys.menu";
 //Location
 static const wchar_t* _LOCATION = L"http://tizen.org/feature/location";
 static const wchar_t* _LOCATION_GPS = L"http://tizen.org/feature/location.gps";
@@ -92,9 +88,7 @@ static const wchar_t* _NETWORK_NFC = L"http://tizen.org/feature/network.nfc";
 static const wchar_t* _NETWORK_NFC_RESERVED_PUSH = L"http://tizen.org/feature/network.nfc.reserved_push";
 //Network push
 static const wchar_t* _NETWORK_PUSH = L"http://tizen.org/feature/network.push";
-static const wchar_t* _NETWORK_PUSH_BIN = L"/usr/bin/pushd";
 static const wchar_t* _NETWORK_SECURE_ELEMENT = L"http://tizen.org/feature/network.secure_element";
-static const wchar_t* _SECURE_ELEMENT_BIN = L"/usr/bin/smartcard-daemon";
 //Network telephony
 static const wchar_t* _NETWORK_TELEPHONY = L"http://tizen.org/feature/network.telephony";
 static const wchar_t* _NETWORK_TELEPHONY_MMS = L"http://tizen.org/feature/network.telephony.mms";
@@ -109,8 +103,6 @@ static const wchar_t* _NETWORK_TELEPHONY_SERVICE_HSPA = L"http://tizen.org/featu
 static const wchar_t* _NETWORK_TELEPHONY_SERVICE_HSUPA = L"http://tizen.org/feature/network.telephony.service.hsupa";
 static const wchar_t* _NETWORK_TELEPHONY_SERVICE_LTE = L"http://tizen.org/feature/network.telephony.service.lte";
 static const wchar_t* _NETWORK_TELEPHONY_SERVICE_UMTS = L"http://tizen.org/feature/network.telephony.service.umts";
-static const wchar_t* _NETWORK_TELEPHONY_SERVICE_BIN = L"/usr/bin/telephony-daemon";
-static const wchar_t* _NETWORK_TELEPHONY_MODEM_BIN = L"/boot/modem.bin";
 //Network WIFI
 static const wchar_t* _NETWORK_WIFI = L"http://tizen.org/feature/network.wifi";
 static const wchar_t* _NETWORK_WIFI_DIRECT = L"http://tizen.org/feature/network.wifi.direct";
@@ -149,8 +141,13 @@ static const wchar_t* _SCREEN_DPI = L"http://tizen.org/feature/screen.dpi";
 static const wchar_t* _SCREEN_HEIGHT = L"http://tizen.org/feature/screen.height";
 static const wchar_t* _SCREEN_SIZE_LARGE = L"http://tizen.org/feature/screen.size.large";
 static const wchar_t* _SCREEN_SIZE_NORMAL = L"http://tizen.org/feature/screen.size.normal";
+static const wchar_t* _SCREEN_SIZE_NORMAL_240_400 = L"http://tizen.org/feature/screen.size.normal.240.400";
+static const wchar_t* _SCREEN_SIZE_NORMAL_320_480 = L"http://tizen.org/feature/screen.size.normal.320.480";
 static const wchar_t* _SCREEN_SIZE_NORMAL_480_800 = L"http://tizen.org/feature/screen.size.normal.480.800";
+static const wchar_t* _SCREEN_SIZE_NORMAL_540_960 = L"http://tizen.org/feature/screen.size.normal.540.960";
+static const wchar_t* _SCREEN_SIZE_NORMAL_600_1024 = L"http://tizen.org/feature/screen.size.normal.600.1024";
 static const wchar_t* _SCREEN_SIZE_NORMAL_720_1280 = L"http://tizen.org/feature/screen.size.normal.720.1280";
+static const wchar_t* _SCREEN_SIZE_NORMAL_1080_1920 = L"http://tizen.org/feature/screen.size.normal.1080.1920";
 static const wchar_t* _SCREEN_WIDTH = L"http://tizen.org/feature/screen.width";
 //Screen HDMI RCA
 static const wchar_t* _SCREEN_OUTPUT_HDMI = L"http://tizen.org/feature/screen.output.hdmi";
@@ -177,18 +174,15 @@ static const wchar_t* _SIP_VOIP = L"http://tizen.org/feature/sip.voip";
 //Speech Recognition
 static const wchar_t* _SPEECH_RECOGNITION = L"http://tizen.org/feature/speech.recognition";
 static const wchar_t* _SPEECH_SYNTHESIS = L"http://tizen.org/feature/speech.synthesis";
-static const wchar_t* _TTS_LIB = L"/usr/lib/libtts.so";
 //USB
 static const wchar_t* _USB_ACCESSORY = L"http://tizen.org/feature/usb.accessory";
 static const wchar_t* _USB_CLIENT = L"http://tizen.org/feature/usb.client";
 static const wchar_t* _USB_HOST = L"http://tizen.org/feature/usb.host";
-static const wchar_t* _ACCESSORY_LIB = L"/opt/apps/aospd00043/lib/libosp-cond-accessory.so";
 //Vision
 static const wchar_t* _VISION_FACE_RECOGNITION = L"http://tizen.org/feature/vision.face_recognition";
 static const wchar_t* _VISION_IMAGE_RECOGNITION = L"http://tizen.org/feature/vision.image_recognition";
 static const wchar_t* _VISION_QRCODE_GENERATION = L"http://tizen.org/feature/vision.qrcode_generation";
 static const wchar_t* _VISION_QRCODE_RECOGNITION = L"http://tizen.org/feature/vision.qrcode_recognition";
-static const wchar_t* _AR_ENGINE_LIB = L"/usr/lib/osp/libarengine.so";
 
 static const wchar_t* _BUILD_STRING = L"http://tizen.org/system/build.string";
 //DUID
@@ -205,14 +199,6 @@ static const wchar_t* _SOUND_SYSTEM_VOLUME_MAX = L"http://tizen.org/system/sound
 
 
 //Communication
-static const int _SYSTEM_GET_PARAM_TYPE = 1;
-static const wchar_t* _SYSTEM_GET_BOOL = L"osp.system.command.system.get.bool";
-static const wchar_t* _SYSTEM_GET_INT = L"osp.system.command.system.get.int";
-static const wchar_t* _SYSTEM_GET_STRING = L"osp.system.command.system.get.string";
-
-static const wchar_t* _SYSTEM_OK = L"osp.system.result.ok";
-static const wchar_t* _SYSTEM_OBJ_NOT_FOUND = L"osp.system.result.obj_not_found";
-static const wchar_t* _SYSTEM_ERROR = L"osp.system.result.error";
 
 static const wchar_t* _SYSTEM_CACHING_FILE = L"/opt/usr/etc/system_info_cache.ini";
 static const wchar_t* _SYSTEM_CACHING_SECTION = L"SystemInformation";
@@ -258,7 +244,7 @@ _SystemInfoService::DestroySingleton(void)
 }
 
 result
-_SystemInfoService::CachingSystemInformation(void)
+_SystemInfoService::CreateCacheFile(void)
 {
        Registry reg;
        result r = E_SUCCESS;
@@ -775,22 +761,70 @@ _SystemInfoService::CachingSystemInformation(void)
        reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL, systemValue);
        reg.Flush();
 
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_240_400, bValue);
+       if(bValue == true)
+               systemValue = _SYSTEM_CACHING_TRUE;
+       else
+               systemValue = _SYSTEM_CACHING_FALSE;
+
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_240_400, systemValue);
+       reg.Flush();
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_320_480, bValue);
+       if(bValue == true)
+               systemValue = _SYSTEM_CACHING_TRUE;
+       else
+               systemValue = _SYSTEM_CACHING_FALSE;
+
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_320_480, systemValue);
+       reg.Flush();
+
        this->GetValue(_SCREEN_SIZE_NORMAL_480_800, bValue);
        if(bValue == true)
                systemValue = _SYSTEM_CACHING_TRUE;
        else
                systemValue = _SYSTEM_CACHING_FALSE;
+
        reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_480_800, systemValue);
        reg.Flush();
 
+       this->GetValue(_SCREEN_SIZE_NORMAL_540_960, bValue);
+       if(bValue == true)
+               systemValue = _SYSTEM_CACHING_TRUE;
+       else
+               systemValue = _SYSTEM_CACHING_FALSE;
+
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_540_960, systemValue);
+       reg.Flush();
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_600_1024, bValue);
+       if(bValue == true)
+               systemValue = _SYSTEM_CACHING_TRUE;
+       else
+               systemValue = _SYSTEM_CACHING_FALSE;
+
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_600_1024, systemValue);
+       reg.Flush();
+
        this->GetValue(_SCREEN_SIZE_NORMAL_720_1280, bValue);
        if(bValue == true)
                systemValue = _SYSTEM_CACHING_TRUE;
        else
                systemValue = _SYSTEM_CACHING_FALSE;
+
        reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_720_1280, systemValue);
        reg.Flush();
 
+       this->GetValue(_SCREEN_SIZE_NORMAL_1080_1920, bValue);
+       if(bValue == true)
+               systemValue = _SYSTEM_CACHING_TRUE;
+       else
+               systemValue = _SYSTEM_CACHING_FALSE;
+
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_1080_1920, systemValue);
+       reg.Flush();
+
        this->GetValue(_SCREEN_OUTPUT_HDMI, bValue);
        if(bValue == true)
                systemValue = _SYSTEM_CACHING_TRUE;
@@ -1048,6 +1082,1384 @@ _SystemInfoService::CachingSystemInformation(void)
 }
 
 result
+_SystemInfoService::UpdateCacheFile(void)
+{
+       Registry reg;
+       result r = E_SUCCESS;
+       String systemValue;
+
+       r = reg.Construct(_SYSTEM_CACHING_FILE, "r+");
+       SysTryReturnResult(NID_SYS, r == E_SUCCESS, r, "It is failed to create the cache file.");
+
+       bool bValue = false;
+       int nValue = 0;
+       String sValue;
+
+       //For improve launch performance
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_DPI, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_DPI, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_DPI, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_HEIGHT, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_HEIGHT, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_HEIGHT, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_WIDTH, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_WIDTH, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_WIDTH, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _CAMERA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_CAMERA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _CAMERA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _CAMERA_BACK, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_CAMERA_BACK, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _CAMERA_BACK, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _CAMERA_BACK_FLASH, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_CAMERA_BACK_FLASH, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _CAMERA_BACK_FLASH, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _CAMERA_FRONT, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_CAMERA_FRONT, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _CAMERA_FRONT, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _CAMERA_FRONT_FLASH, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_CAMERA_FRONT_FLASH, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _CAMERA_FRONT_FLASH, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _DATABASE_ENCRYPTION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_DATABASE_ENCRYPTION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _DATABASE_ENCRYPTION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _FMRADIO, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_FMRADIO, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _FMRADIO, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _GRAPHIC_ACCELERATION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_GRAPHIC_ACCELERATION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _GRAPHIC_ACCELERATION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _INPUT_KEYBOARD, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_INPUT_KEYBOARD, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _INPUT_KEYBOARD, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _INPUT_KEYBOARD_LAYOUT, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_INPUT_KEYBOARD_LAYOUT, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _INPUT_KEYBOARD_LAYOUT, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _LOCATION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_LOCATION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _LOCATION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _LOCATION_GPS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_LOCATION_GPS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _LOCATION_GPS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _LOCATION_WPS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_LOCATION_WPS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _LOCATION_WPS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _MICROPHONE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_MICROPHONE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _MICROPHONE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _MULTIPOINTTOUCH_PINCHZOOM, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_MULTIPOINTTOUCH_PINCHZOOM, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _MULTIPOINTTOUCH_PINCHZOOM, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _MULTIPOINTTOUCH_POINTCOUNT, nValue);
+       if(r != E_SUCCESS)
+       {
+               r = reg.GetValue(_SYSTEM_CACHING_SECTION, _MULTIPOINTTOUCH_POINTCOUNT, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _MULTIPOINTTOUCH_POINTCOUNT, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_BLUETOOTH, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_BLUETOOTH, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_BLUETOOTH, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_NFC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_NFC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_NFC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_NFC_RESERVED_PUSH, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_NFC_RESERVED_PUSH, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_NFC_RESERVED_PUSH, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_PUSH, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_PUSH, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_PUSH, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_SECURE_ELEMENT, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_SECURE_ELEMENT, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_SECURE_ELEMENT, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_MMS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_MMS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_MMS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SMS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SMS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SMS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SMS_CBS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SMS_CBS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SMS_CBS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_CDMA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_CDMA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_CDMA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_EDGE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_EDGE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_EDGE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_GPRS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_GPRS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_GPRS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_GSM, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_GSM, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_GSM, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSDPA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_HSDPA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSDPA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSPA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_HSPA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSPA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSUPA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_HSUPA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_HSUPA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_LTE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_LTE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_LTE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_UMTS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_TELEPHONY_SERVICE_UMTS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_TELEPHONY_SERVICE_UMTS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_WIFI, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_WIFI, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_WIFI, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _NETWORK_WIFI_DIRECT, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_NETWORK_WIFI_DIRECT, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _NETWORK_WIFI_DIRECT, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_3DC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_3DC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_3DC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_ATC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_ATC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_ATC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_ETC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_ETC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_ETC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_PTC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_PTC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_PTC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_PVRTC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_PVRTC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_PVRTC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_UTC, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_TEXTUREFORMAT_UTC, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_TEXTUREFORMAT_UTC, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_VERSION_1_1, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_VERSION_1_1, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_VERSION_1_1, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _OPENGLES_VERSION_2_0, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_OPENGLES_VERSION_2_0, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _OPENGLES_VERSION_2_0, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_ARMV6, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_CPU_ARCH_ARMV6, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_ARMV6, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_ARMV7, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_CPU_ARCH_ARMV7, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_ARMV7, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_X86, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_CPU_ARCH_X86, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_CPU_ARCH_X86, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSE2, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_FPU_ARCH_SSE2, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSE2, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSE3, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_FPU_ARCH_SSE3, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSE3, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSSE3, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_FPU_ARCH_SSSE3, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_SSSE3, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_VFPV2, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_FPU_ARCH_VFPV2, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_VFPV2, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_VFPV3, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_CORE_FPU_ARCH_VFPV3, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_CORE_FPU_ARCH_VFPV3, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NATIVE_API_VERSION, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_NATIVE_API_VERSION, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NATIVE_API_VERSION, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NATIVE_OSP_COMPATIBLE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_NATIVE_OSP_COMPATIBLE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NATIVE_OSP_COMPATIBLE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_VERSION, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_VERSION, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_VERSION, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_WEB_API_VERSION, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_WEB_API_VERSION, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_WEB_API_VERSION, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_AUTO_ROTATION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_AUTO_ROTATION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_AUTO_ROTATION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_BPP, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_BPP, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_BPP, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_COORDINATE_SYSTEM_SIZE_LARGE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_COORDINATE_SYSTEM_SIZE_LARGE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_COORDINATE_SYSTEM_SIZE_LARGE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_COORDINATE_SYSTEM_SIZE_NORMAL, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_COORDINATE_SYSTEM_SIZE_NORMAL, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_COORDINATE_SYSTEM_SIZE_NORMAL, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_DESKTOPMODE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_DESKTOPMODE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_DESKTOPMODE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_LARGE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_LARGE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_LARGE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL, systemValue);
+               reg.Flush();
+       }
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_240_400, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_240_400, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_240_400, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_320_480, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_320_480, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_320_480, systemValue);
+               reg.Flush();
+       }
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_480_800, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_480_800, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_480_800, systemValue);
+               reg.Flush();
+       }
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_540_960, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_540_960, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_540_960, systemValue);
+               reg.Flush();
+       }
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_600_1024, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_600_1024, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_600_1024, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_720_1280, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_720_1280, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_720_1280, systemValue);
+               reg.Flush();
+       }
+
+       this->GetValue(_SCREEN_SIZE_NORMAL_1080_1920, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_SIZE_NORMAL_1080_1920, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_SIZE_NORMAL_1080_1920, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_OUTPUT_HDMI, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_OUTPUT_HDMI, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_OUTPUT_HDMI, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SCREEN_OUTPUT_RCA, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SCREEN_OUTPUT_RCA, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SCREEN_OUTPUT_RCA, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SHELL_APPWIDGET, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SHELL_APPWIDGET, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SHELL_APPWIDGET, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_ACCELEROMETER, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_ACCELEROMETER, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_ACCELEROMETER, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_ACCELEROMETER_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_ACCELEROMETER_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_ACCELEROMETER_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_BAROMETER, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_BAROMETER, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_BAROMETER, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_BAROMETER_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_BAROMETER_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_BAROMETER_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_GYROSCOPE, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_GYROSCOPE, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_GYROSCOPE, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_GYROSCOPE_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_GYROSCOPE_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_GYROSCOPE_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_MAGNETOMETER, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_MAGNETOMETER, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_MAGNETOMETER, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_MAGNETOMETER_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_MAGNETOMETER_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_MAGNETOMETER_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_PHOTOMETER, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_PHOTOMETER, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_PHOTOMETER, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_PHOTOMETER_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_PHOTOMETER_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_PHOTOMETER_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_PROXIMITY, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_PROXIMITY, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_PROXIMITY, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_PROXIMITY_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_PROXIMITY_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_PROXIMITY_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_TILTMETER, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_TILTMETER, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_TILTMETER, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SENSOR_TILTMETER_WAKEUP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SENSOR_TILTMETER_WAKEUP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SENSOR_TILTMETER_WAKEUP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SIP_VOIP, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SIP_VOIP, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SIP_VOIP, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SPEECH_RECOGNITION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SPEECH_RECOGNITION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SPEECH_RECOGNITION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SPEECH_SYNTHESIS, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SPEECH_SYNTHESIS, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SPEECH_SYNTHESIS, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _USB_ACCESSORY, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_USB_ACCESSORY, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _USB_ACCESSORY, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _USB_CLIENT, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_USB_CLIENT, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _USB_CLIENT, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _USB_HOST, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_USB_HOST, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _USB_HOST, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _VISION_FACE_RECOGNITION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_VISION_FACE_RECOGNITION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _VISION_FACE_RECOGNITION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _VISION_IMAGE_RECOGNITION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_VISION_IMAGE_RECOGNITION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _VISION_IMAGE_RECOGNITION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _VISION_QRCODE_GENERATION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_VISION_QRCODE_GENERATION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _VISION_QRCODE_GENERATION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _VISION_QRCODE_RECOGNITION, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_VISION_QRCODE_RECOGNITION, systemValue);
+               if(bValue == true)
+                       systemValue = _SYSTEM_CACHING_TRUE;
+               else
+                       systemValue = _SYSTEM_CACHING_FALSE;
+
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _VISION_QRCODE_RECOGNITION, systemValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _BUILD_STRING, systemValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_BUILD_STRING, systemValue);
+               reg.Flush();
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _BUILD_STRING, systemValue);
+               reg.Flush();
+
+       r = this->GetValue(_DUID, sValue);
+       r = this->GetValue(_DUID, sValue);
+       if(r != E_SUCCESS)
+       {
+               sValue.Append(L"ERROR");
+       }
+       reg.AddValue(_SYSTEM_CACHING_SECTION, _DUID, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _MODELNAME, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_MODELNAME, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _MODELNAME, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NAME, sValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_PLATFORM_NAME, sValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _PLATFORM_NAME, sValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SOUND_MEDIA_VOLUME_MAX, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SOUND_MEDIA_VOLUME_MAX, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SOUND_MEDIA_VOLUME_MAX, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SOUND_NOTIFICATION_VOLUME_MAX, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SOUND_NOTIFICATION_VOLUME_MAX, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SOUND_NOTIFICATION_VOLUME_MAX, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SOUND_RINGTONE_VOLUME_MAX, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SOUND_RINGTONE_VOLUME_MAX, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SOUND_RINGTONE_VOLUME_MAX, nValue);
+               reg.Flush();
+       }
+
+       r = reg.GetValue(_SYSTEM_CACHING_SECTION, _SOUND_SYSTEM_VOLUME_MAX, nValue);
+       if(r != E_SUCCESS)
+       {
+               this->GetValue(_SOUND_SYSTEM_VOLUME_MAX, nValue);
+               reg.AddValue(_SYSTEM_CACHING_SECTION, _SOUND_SYSTEM_VOLUME_MAX, nValue);
+               reg.Flush();
+       }
+
+       return E_SUCCESS;
+}
+
+result
+_SystemInfoService::CachingSystemInformation(void)
+{
+       result r = E_SUCCESS;
+
+       if(File::IsFileExist(_SYSTEM_CACHING_FILE) == false)
+       {
+               r = CreateCacheFile();
+       }
+       else
+       {
+               FileAttributes attr;
+               File::GetAttributes(_SYSTEM_CACHING_FILE, attr);
+               if(attr.GetFileSize() == 0)
+               {
+                       r = CreateCacheFile();
+               }
+               else
+               {
+                       r = UpdateCacheFile();
+               }
+       }
+
+       return r;
+}
+
+result
 _SystemInfoService::GetValue(const String& key, String& value)
 {
        int ret = 0;
index a3b5f62..f5511be 100644 (file)
@@ -52,6 +52,10 @@ public:
 public:
        result CachingSystemInformation(void);
 
+       result CreateCacheFile(void);
+
+       result UpdateCacheFile(void);
+
        result GetValue(const Tizen::Base::String& key, Tizen::Base::String& value);
 
        result GetValue(const Tizen::Base::String& key, int& value);