#include <dpl/singleton.h>
#include <AsyncCallbackManager.h>
#include <dpl/mutex.h>
-#include "SqlDataControlConsumer.h"
+#include "DataControlPendingEvent.h"
+
namespace DeviceAPI {
namespace DataControl {
virtual ~DataControlAsyncCallbackManager()
{
- cleanupSQLUserData();
+ cleanupUserData();
}
- bool isSQLDataControlGC(void* address)
+ bool isDataControlGC(void* address)
{
LoggerD(address);
- if (m_sqlDataControlGCMap.find(address) == m_sqlDataControlGCMap.end())
+ if (m_dataControlGCMap.find(address) == m_dataControlGCMap.end())
{
return true;
}
- return m_sqlDataControlGCMap[address];
+ return m_dataControlGCMap[address];
}
- bool isMappedDataControlGC(void* address)
- {
- LoggerD(address);
- if (m_mappedDataControlGCMap.find(address) == m_mappedDataControlGCMap.end())
- {
- return true;
- }
-
- return m_mappedDataControlGCMap[address];
- }
- void setSQLDataControlGC(void* address, bool gc)
+ void setDataControlGC(void* address, bool gc)
{
LoggerD(address);
DPL::Mutex::ScopedLock lock(&m_mutex);
- if (gc && m_sqlDataControlGCMap.find(address) != m_sqlDataControlGCMap.end())
+ if (gc && m_dataControlGCMap.find(address) != m_dataControlGCMap.end())
{
- m_mappedDataControlGCMap.erase(address);
+ m_dataControlGCMap.erase(address);
}
- m_sqlDataControlGCMap[address] = gc;
+ m_dataControlGCMap[address] = gc;
}
- void setMappedDataControlGC(void* address, bool gc)
- {
- LoggerD(address);
-
- DPL::Mutex::ScopedLock lock(&m_mutex);
- if (gc && m_mappedDataControlGCMap.find(address) != m_mappedDataControlGCMap.end())
- {
- m_mappedDataControlGCMap.erase(address);
- }
- m_mappedDataControlGCMap[address] = gc;
- }
- bool checkDoSQLOperation()
+ bool checkRequestIpcOperation()
{
-// return m_callbackSQLUserDataMap.empty();
+// return m_callbackUserDataMap.empty();
// limitation 128
- if (m_callbackSQLUserDataMap.size() < 128)
+ if (m_callbackUserDataMap.size() < 128)
return true;
else
return false;
}
- void* getRemainingSQLOperation()
+ void* getRemainingIpcOperation()
{
LoggerD("OK");
void *retPtr = NULL;
- if (m_callbackSQLUserDataMap.empty() == false)
+ if (m_callbackUserDataMap.empty() == false)
{
- std::string key = m_sqlReqIdVector[0];
- retPtr = m_callbackSQLUserDataMap[key];
+ std::string key = m_reqIdVector[0];
+ retPtr = m_callbackUserDataMap[key];
}
return retPtr;
}
bool checkReqIdUnique(std::string key)
{
- if (m_callbackSQLUserDataMap.find(key) == m_callbackSQLUserDataMap.end())
+ if (m_callbackUserDataMap.find(key) == m_callbackUserDataMap.end())
{
return true;
}
return false;
}
+
void addSQLUserData(std::string key, void* data)
{
- if (m_callbackSQLUserDataMap.find(key) != m_callbackSQLUserDataMap.end())
+ if (m_callbackUserDataMap.find(key) != m_callbackUserDataMap.end())
{
ThrowMsg(WrtDeviceApis::Commons::PlatformException, "same id exist");
}
- m_sqlReqIdVector.push_back(key);
+ m_reqIdVector.push_back(key);
LoggerD("Add OK ReqId : " << key);
DPL::Mutex::ScopedLock lock(&m_mutex);
- m_callbackSQLUserDataMap[key] = data;
+ m_callbackUserDataMap[key] = data;
}
void* removeSQLUserData(std::string key)
{
size_t index = 0;
- if (m_callbackSQLUserDataMap.find(key) == m_callbackSQLUserDataMap.end())
+ if (m_callbackUserDataMap.find(key) == m_callbackUserDataMap.end())
{
LoggerD("Fail ReqId : " << key);
ThrowMsg(WrtDeviceApis::Commons::PlatformException, "there is no key");
DPL::Mutex::ScopedLock lock(&m_mutex);
- void* data = m_callbackSQLUserDataMap[key];
+ void* data = m_callbackUserDataMap[key];
// LoggerD(key << " : " << std::hex << data);
- m_callbackSQLUserDataMap.erase(key);
+ m_callbackUserDataMap.erase(key);
- for (index = 0; index < m_sqlReqIdVector.size(); index++)
+ for (index = 0; index < m_reqIdVector.size(); index++)
{
- if (m_sqlReqIdVector[index] == key)
+ if (m_reqIdVector[index] == key)
{
- m_sqlReqIdVector.erase(m_sqlReqIdVector.begin() + index);
+ m_reqIdVector.erase(m_reqIdVector.begin() + index);
break;
}
}
friend class DPL::Singleton<DataControlAsyncCallbackManager>;
private:
- void cleanupSQLUserData()
+ void cleanupUserData()
{
- for (std::map<std::string, void*>::iterator it = m_callbackSQLUserDataMap.begin();
- it != m_callbackSQLUserDataMap.end(); ++it)
+ for (std::map<std::string, void*>::iterator it = m_callbackUserDataMap.begin();
+ it != m_callbackUserDataMap.end(); ++it)
{
CommonPendingEvent *event = (CommonPendingEvent*)it->second;
LoggerD("free delete");
delete deleteEvent;
}
+
+ EventAddValuePendingEvent *addValueEvent = dynamic_cast<EventAddValuePendingEvent*>(event);
+
+ if (addValueEvent)
+ {
+ LoggerD("free addValue");
+ delete addValueEvent;
+ continue;
+ }
+
+
+ EventGetValuePendingEvent *getValueEvent = dynamic_cast<EventGetValuePendingEvent*>(event);
+
+ if (getValueEvent)
+ {
+ LoggerD("free getValue");
+ delete getValueEvent;
+ continue;
+ }
+
+ EventUpdateValuePendingEvent *updateValueEvent = dynamic_cast<EventUpdateValuePendingEvent*>(event);
+
+ if (updateValueEvent)
+ {
+ LoggerD("free updateValue");
+ delete updateValueEvent;
+ continue;
+ }
+
+ EventRemoveValuePendingEvent *removeValueEvent = dynamic_cast<EventRemoveValuePendingEvent*>(event);
+
+ if (removeValueEvent)
+ {
+ LoggerD("free removeValue");
+ delete removeValueEvent;
+ }
}
}
DPL::Mutex m_mutex;
- std::map<void*, bool> m_sqlDataControlGCMap;
- std::map<void*, bool> m_mappedDataControlGCMap;
- std::map<std::string, void*> m_callbackSQLUserDataMap;
- std::vector<std::string> m_sqlReqIdVector;
+ std::map<void*, bool> m_dataControlGCMap;
+ std::map<std::string, void*> m_callbackUserDataMap;
+ std::vector<std::string> m_reqIdVector;
};