本文整理汇总了C++中datastructures::OrderedList::GetIndexFromKey方法的典型用法代码示例。如果您正苦于以下问题:C++ OrderedList::GetIndexFromKey方法的具体用法?C++ OrderedList::GetIndexFromKey怎么用?C++ OrderedList::GetIndexFromKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datastructures::OrderedList
的用法示例。
在下文中一共展示了OrderedList::GetIndexFromKey方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetRemoteFunctionIndex
bool AutoRPC::GetRemoteFunctionIndex(SystemAddress systemAddress, AutoRPC::RPCIdentifier identifier, unsigned int *outerIndex, unsigned int *innerIndex)
{
bool objectExists=false;
if (remoteFunctions.Has(systemAddress))
{
*outerIndex = remoteFunctions.GetIndexAtKey(systemAddress);
DataStructures::OrderedList<RPCIdentifier, RemoteRPCFunction, AutoRPC::RemoteRPCFunctionComp> *theList = remoteFunctions[*outerIndex];
*innerIndex = theList->GetIndexFromKey(identifier, &objectExists);
}
return objectExists;
}
示例2: OnRPCRemoteIndex
void AutoRPC::OnRPCRemoteIndex(SystemAddress systemAddress, unsigned char *data, unsigned int lengthInBytes)
{
// A remote system has given us their internal index for a particular function.
// Store it and use it from now on, to save bandwidth and search time
bool objectExists;
char strIdentifier[512];
unsigned int insertionIndex;
unsigned int remoteIndex;
RemoteRPCFunction newRemoteFunction;
RakNet::BitStream bs(data,lengthInBytes,false);
RPCIdentifier identifier;
bs.Read(identifier.isObjectMember);
bs.ReadCompressed(remoteIndex);
stringCompressor->DecodeString(strIdentifier,512,&bs,0);
identifier.uniqueIdentifier=strIdentifier;
if (strIdentifier[0]==0)
return;
DataStructures::OrderedList<RPCIdentifier, RemoteRPCFunction, AutoRPC::RemoteRPCFunctionComp> *theList;
if (remoteFunctions.Has(systemAddress))
{
theList = remoteFunctions.Get(systemAddress);
insertionIndex=theList->GetIndexFromKey(identifier, &objectExists);
if (objectExists==false)
{
newRemoteFunction.functionIndex=remoteIndex;
newRemoteFunction.identifier.isObjectMember=identifier.isObjectMember;
newRemoteFunction.identifier.uniqueIdentifier = (char*) rakMalloc_Ex(strlen(strIdentifier)+1, __FILE__, __LINE__);
strcpy(newRemoteFunction.identifier.uniqueIdentifier, strIdentifier);
theList->InsertAtIndex(newRemoteFunction, insertionIndex, __FILE__, __LINE__);
}
}
else
{
theList = RakNet::OP_NEW<DataStructures::OrderedList<RPCIdentifier, RemoteRPCFunction, AutoRPC::RemoteRPCFunctionComp> >( __FILE__, __LINE__ );
newRemoteFunction.functionIndex=remoteIndex;
newRemoteFunction.identifier.isObjectMember=identifier.isObjectMember;
newRemoteFunction.identifier.uniqueIdentifier = (char*) rakMalloc_Ex(strlen(strIdentifier)+1, __FILE__, __LINE__);
strcpy(newRemoteFunction.identifier.uniqueIdentifier, strIdentifier);
theList->InsertAtEnd(newRemoteFunction, __FILE__, __LINE__);
remoteFunctions.SetNew(systemAddress,theList);
}
}