本文整理汇总了C++中NF_SHARE_PTR::GetColType方法的典型用法代码示例。如果您正苦于以下问题:C++ NF_SHARE_PTR::GetColType方法的具体用法?C++ NF_SHARE_PTR::GetColType怎么用?C++ NF_SHARE_PTR::GetColType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NF_SHARE_PTR
的用法示例。
在下文中一共展示了NF_SHARE_PTR::GetColType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ConvertRecordToPB
bool NFCCreateRoleModule::ConvertRecordToPB(const NF_SHARE_PTR<NFIRecord>& pRecord, NFMsg::ObjectRecordBase * pRecordData)
{
pRecordData->set_record_name(pRecord->GetName());
for (int iRow = 0; iRow < pRecord->GetRows(); iRow++)
{
if (!pRecord->IsUsed(iRow))
{
continue;
}
NFMsg::RecordAddRowStruct* pRowData = pRecordData->add_row_struct();
if (!pRowData)
{
continue;
}
pRowData->set_row(iRow);
for (int iCol = 0; iCol < pRecord->GetCols(); iCol++)
{
const int nType = pRecord->GetColType(iCol);
switch (nType)
{
case TDATA_INT:
{
NFMsg::RecordInt* pPropertyData = pRowData->add_record_int_list();
const NFINT64 xPropertyValue = pRecord->GetInt(iRow, iCol);
if (pPropertyData)
{
pPropertyData->set_col(iCol);
pPropertyData->set_row(iRow);
pPropertyData->set_data(xPropertyValue);
}
}
break;
case TDATA_FLOAT:
{
NFMsg::RecordFloat* pPropertyData = pRowData->add_record_float_list();
const double xPropertyValue = pRecord->GetFloat(iRow, iCol);
if (pPropertyData)
{
pPropertyData->set_col(iCol);
pPropertyData->set_row(iRow);
pPropertyData->set_data(xPropertyValue);
}
}
break;
case TDATA_STRING:
{
NFMsg::RecordString* pPropertyData = pRowData->add_record_string_list();
const std::string& xPropertyValue = pRecord->GetString(iRow, iCol);
if (pPropertyData)
{
pPropertyData->set_col(iCol);
pPropertyData->set_row(iRow);
pPropertyData->set_data(xPropertyValue);
}
}
break;
case TDATA_OBJECT:
{
NFMsg::RecordObject* pPropertyData = pRowData->add_record_object_list();
const NFGUID xPropertyValue = pRecord->GetObject(iRow, iCol);
if (pPropertyData)
{
pPropertyData->set_col(iCol);
pPropertyData->set_row(iRow);
*pPropertyData->mutable_data() = NFINetModule::NFToPB(xPropertyValue);
}
}
break;
case TDATA_VECTOR2:
{
NFMsg::RecordVector2* pPropertyData = pRowData->add_record_vector2_list();
const NFVector2 xPropertyValue = pRecord->GetVector2(iRow, iCol);
if (pPropertyData)
{
pPropertyData->set_col(iCol);
pPropertyData->set_row(iRow);
NFMsg::Vector2* pVec = pPropertyData->mutable_data();
pVec->set_x(xPropertyValue.X());
pVec->set_y(xPropertyValue.Y());
}
}
break;
case TDATA_VECTOR3:
{
NFMsg::RecordVector3* pPropertyData = pRowData->add_record_vector3_list();
const NFVector3 xPropertyValue = pRecord->GetVector3(iRow, iCol);
if (pPropertyData)
{
//.........这里部分代码省略.........
示例2: ProcessBuffValuePropertyReferAbsoluteValue
int NFCBuffModule::ProcessBuffValuePropertyReferAbsoluteValue( const NFIDENTID& self, NFIBuffConfigModule::NFCBuffConfig* pBuffConfig, const NFIDENTID& releaserIdent )
{
//buff group property
int nBuffGroup = 0;
//RUNTIME_BUFF_INFO
NF_SHARE_PTR<NFIObject> pObject = m_pKernelModule->GetObject( self );
NF_SHARE_PTR<NFIRecord> pBuffRecord = pObject->GetRecordManager()->GetElement( mstrRunTimeEffectTable );
if ( pBuffRecord )
{
NF_SHARE_PTR<NFIRecord> pPropertyGroupRecord = pObject->GetRecordManager()->GetElement( mstrPropertyTable );
std::string strPropertyList;
std::string strPropertyName;
int* pnEffectValue = pBuffConfig->First( strPropertyName );
while ( pnEffectValue )
{
NF_SHARE_PTR<NFIProperty> pProperty = pObject->GetPropertyManager()->GetElement( strPropertyName );
if ( pProperty )
{
char szEffectValue[MAX_PATH] = {0};
printf( szEffectValue, "%d", *pnEffectValue );
strPropertyList.append( strPropertyName );
strPropertyList.append( "," );
strPropertyList.append( szEffectValue );
strPropertyList.append( ";" );
//相继设置属性到buff group,增值
//从属性系统得到属性应该在的col函数
int nPropertyGroupCol = 0;
int nPropertyBuffGroupRow = 0;
TDATA_TYPE eColType = pPropertyGroupRecord->GetColType( nPropertyGroupCol );
if ( NFIBuffConfigModule::BuffReverseType::ERT_NEED_REVERSE == pBuffConfig->NeedReverseType )
{
//需要还原
switch ( eColType )
{
case TDATA_INT:
pPropertyGroupRecord->SetInt( nPropertyBuffGroupRow, nPropertyGroupCol, *pnEffectValue );
break;
case TDATA_FLOAT:
pPropertyGroupRecord->SetFloat( nPropertyBuffGroupRow, nPropertyGroupCol, float( *pnEffectValue ) );
break;
case TDATA_DOUBLE:
pPropertyGroupRecord->SetDouble( nPropertyBuffGroupRow, nPropertyGroupCol, double( *pnEffectValue ) );
break;
default:
break;
}
}
else if ( NFIBuffConfigModule::BuffReverseType::ERT_NO_REVERSE == pBuffConfig->NeedReverseType )
{
//不需要还原
NFIDataList::TData valueEffectValue;
switch ( eColType )
{
case TDATA_INT:
valueEffectValue.nType = TDATA_INT;
valueEffectValue.variantData = NFINT64( *pnEffectValue );
break;
case TDATA_FLOAT:
valueEffectValue.nType = TDATA_FLOAT;
valueEffectValue.variantData = float( *pnEffectValue );
break;
case TDATA_DOUBLE:
valueEffectValue.nType = TDATA_DOUBLE;
valueEffectValue.variantData = double( *pnEffectValue );
break;
default:
break;
}
//const NFIDataList& oldValue = pProperty->GetValue();
pObject->GetPropertyManager()->SetProperty( strPropertyName, valueEffectValue );
}
pnEffectValue = pBuffConfig->Next( strPropertyName );
}
//还原与否,都需要保存在runtimebuff表
NFCDataList valueBuffProperty;
valueBuffProperty.AddString( strPropertyName.c_str() );
valueBuffProperty.AddObject( releaserIdent );
valueBuffProperty.AddFloat( pBuffConfig->EffectTimeInterval );
valueBuffProperty.AddInt( pBuffConfig->EffectTimeValue );
valueBuffProperty.AddString( strPropertyName.c_str() );
pBuffRecord->AddRow( -1, valueBuffProperty );
}
}
return 0;
}
示例3: SaveDataToNoSql
const bool NFCObjectSaveModule::SaveDataToNoSql( const NFIDENTID& self )
{
NF_SHARE_PTR<NFIObject> pObject = m_pKernelModule->GetObject( self );
if ( pObject.get() )
{
NF_SHARE_PTR<NFIPropertyManager> pProManager = pObject->GetPropertyManager();
NF_SHARE_PTR<NFIRecordManager> pRecordManager = pObject->GetRecordManager();
std::vector<std::string> vFieldVec;
std::vector<std::string> vValueVec;
//witch property to save
std::string strName;
NF_SHARE_PTR<NFIProperty> xProperty = pProManager->First(strName);
while (xProperty)
{
if (xProperty->GetSave())
{
vFieldVec.push_back(strName);
vValueVec.push_back(xProperty->ToString());
}
strName.clear();
xProperty = pProManager->Next(strName);
}
//witch Record to save
NF_SHARE_PTR<NFIRecord> xRecord = pRecordManager->First(strName);
while (xRecord)
{
if (xRecord->GetSave())
{
NFMsg::PlayerRecordBase xRecordData;
xRecordData.set_record_name(strName);
for (int i = 0; i < xRecord->GetRows(); ++i)
{
if(xRecord->IsUsed(i))
{
for (int j = 0; j < xRecord->GetCols(); ++j)
{
switch (xRecord->GetColType(j))
{
case TDATA_INT:
{
NFMsg::RecordInt* pRecordInt = xRecordData.add_record_int_list();
pRecordInt->set_row(i);
pRecordInt->set_col(j);
pRecordInt->set_data(xRecord->GetInt(i, j));
}
break;
case TDATA_FLOAT:
{
NFMsg::RecordFloat* xRecordFloat = xRecordData.add_record_float_list();
xRecordFloat->set_row(i);
xRecordFloat->set_col(j);
xRecordFloat->set_data(xRecord->GetFloat(i, j));
}
break;
case TDATA_STRING:
{
NFMsg::RecordString* xRecordString = xRecordData.add_record_string_list();
xRecordString->set_row(i);
xRecordString->set_col(j);
xRecordString->set_data(xRecord->GetString(i, j));
}
break;
case TDATA_OBJECT:
{
NFMsg::RecordObject* xRecordObejct = xRecordData.add_record_object_list();
xRecordObejct->set_row(i);
xRecordObejct->set_col(j);
*xRecordObejct->mutable_data() = NFINetModule::NFToPB(xRecord->GetObject(i, j));
}
break;
default:
break;
}
}
}
}
std::string strRecordValue;
if(xRecordData.SerializeToString(&strRecordValue))
{
vFieldVec.push_back(strName);
vValueVec.push_back(strRecordValue);
}
}
strName.clear();
xRecord = pRecordManager->Next(strName);
}
const std::string& strClass = m_pKernelModule->GetPropertyString(self, "ClassName");
if(!m_pClusterSQLModule->Updata(strClass, self.ToString(), vFieldVec, vValueVec))
{
return false;
}
//.........这里部分代码省略.........