base
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
/***************************************************************************
|
||||
Convert Volume Information Class ( ConvertVolumeInfo.cpp )
|
||||
-----------------------------------------
|
||||
|
||||
begin : 2013/03/15
|
||||
copyright : (C) 2013 Solbox Inc.
|
||||
author : Development 1 Team
|
||||
- 2013/03/15 - 1st dadamin
|
||||
email : dev1@solbox.com
|
||||
version : 3.2.0
|
||||
|
||||
CopyRight(C) 2005 Solbox Inc. All Rights reserved.
|
||||
Redistribution and use in source and binary forms, with or with out
|
||||
modification, are not permitted in outside of Solbox Inc.
|
||||
***************************************************************************/
|
||||
#include "rc_mngd.h"
|
||||
#include "Convert.h"
|
||||
#include "ConvertVolumeInfo.h"
|
||||
#include "Logger.h"
|
||||
#include "UtilFn.h"
|
||||
|
||||
CConvertVolumeInfo::CConvertVolumeInfo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CConvertVolumeInfo::~CConvertVolumeInfo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int CConvertVolumeInfo::ToJobData(int nServiceType, void* pFrom, void *pTo)
|
||||
{
|
||||
int r = 0;
|
||||
CJobDataMap *pMap = reinterpret_cast<CJobDataMap *>(pTo);
|
||||
|
||||
switch(nServiceType)
|
||||
{
|
||||
case CServiceInfo::SDK:
|
||||
{
|
||||
vector<string> body;
|
||||
StringSplitEx((char *)pFrom,SDK_DELIMITER, body);
|
||||
if (body.size() != 3 )
|
||||
{
|
||||
r = JOB_ERR_CONVERT;
|
||||
LOG(LERR, "Data conversion failed.");
|
||||
break;
|
||||
}
|
||||
|
||||
vector<string> ids;
|
||||
StringSplit(body[0].c_str(), ID_DELIMITER, ids);
|
||||
if (ids.size() != 2 )
|
||||
{
|
||||
r = JOB_ERR_CONVERT;
|
||||
LOG(LERR, "Data conversion failed.");
|
||||
break;
|
||||
}
|
||||
|
||||
LOG(LDBG, "VolumeInfo Body : %s@%s, %s, %s"
|
||||
,ids[0].c_str(), ids[1].c_str(), body[1].c_str(), body[2].c_str() );
|
||||
|
||||
//SDKReqBodySpInfo *pBody = (SDKReqBodySpInfo*)pFrom;
|
||||
pMap->insert(CJobDataPair(KEY_JOB_TYPE, JOB_VOLUME_INFO));
|
||||
pMap->insert(CJobDataPair(KEY_SP_SVC_ID, ids[0]));
|
||||
pMap->insert(CJobDataPair(KEY_SP_USER_ID, ids[1]));
|
||||
|
||||
pMap->insert(CJobDataPair(KEY_REQ_USER_PASS_CRYPTED, body[1]));
|
||||
pMap->insert(CJobDataPair(KEY_REQ_REG_DATE, body[2]));
|
||||
r = pMap->size();
|
||||
}
|
||||
break;
|
||||
case CServiceInfo::XML:
|
||||
case CServiceInfo::ETC:
|
||||
default:
|
||||
r = JOB_ERR_CONVERT;
|
||||
LOG(LERR, "Service does not support the conversion.");
|
||||
break;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void* CConvertVolumeInfo::ToClientData(int nServiceType, int nCode, void* pFrom, int & outlen)
|
||||
{
|
||||
void* r = NULL;
|
||||
CJobDataMap *pMap = reinterpret_cast<CJobDataMap *>(pFrom);
|
||||
|
||||
switch(nServiceType)
|
||||
{
|
||||
case CServiceInfo::SDK:
|
||||
{
|
||||
string maxstorage = GetJobMapValue(pFrom, KEY_MAX_STR_SIZE);
|
||||
string used = GetJobMapValue(pFrom, KEY_DIR_USED);
|
||||
|
||||
if(maxstorage.empty() && used.empty() )
|
||||
{
|
||||
outlen = 0;
|
||||
LOG(LWAR, "There is no data to be returned.[%s/%s]",
|
||||
used.c_str(),maxstorage.c_str());
|
||||
break;
|
||||
}
|
||||
|
||||
char d = SDK_DELIMITER;
|
||||
ostringstream outdata;
|
||||
outdata << maxstorage << d << used;
|
||||
|
||||
BYTE *t = NULL;
|
||||
outlen= outdata.str().size();
|
||||
t = new BYTE[outlen + 1];
|
||||
if(t)
|
||||
{
|
||||
memcpy(t, outdata.str().c_str(), outlen);
|
||||
t[outlen] = '\0';
|
||||
r = (void*) t;
|
||||
LOG(LDBG, "CConvertVolumeInfo ToClientData(SDK) : %s, %d", (char *)r, outlen);
|
||||
}
|
||||
else
|
||||
{
|
||||
outlen = -1;
|
||||
LOG(LERR, "Memory allocation error.[%d]", errno);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case CServiceInfo::XML:
|
||||
case CServiceInfo::ETC:
|
||||
default:
|
||||
outlen = -1;
|
||||
LOG(LERR, "Service does not support the conversion.");
|
||||
break;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user