User Management API > BS2_GetUserSmallInfosEx


[+ 2.6.3] 사용자 식별자에 해당하는 사용자 정보를 가져옵니다.
BS2UserBlobEx을 이용하는 BS2_GetUserInfosEx와의 차이는
메모리 효율을 위해 3번째 인자 BS2UserSmallBlobEx 멤버 BS2UserPhoto가 포인터 처리된 것을 제외하고 모두 동일합니다.

함수

#include "BS_API.h"
 
int BS2_GetUserSmallInfosEx(void* context, uint32_t deviceId, char* uids, uint32_t uidCount, BS2UserSmallBlobEx* userBlob);

파라미터

  • [In] context : Context
  • [In] deviceId : 장치 식별자
  • [In] uids : 가져오고자 하는 사용자 식별자 리스트
  • [In] uidCount : 사용자 식별자 개수
  • [Out] userBlob : 사용자 정보를 저장할 포인터

반환값

성공적으로 수행될 경우 BS_SDK_SUCCESS를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다.

샘플코드

C#

if (result == BS2ErrorCode.BS_SDK_SUCCESS)
{
    if (numUserIds > 0)
    {
        IntPtr curUidObjs = outUidObjs;
        BS2UserSmallBlobEx[] userBlobs = new BS2UserSmallBlobEx[USER_PAGE_SIZE];
 
        Console.WriteLine("Number of users : ({0}).", numUserIds);
        for (UInt32 idx = 0; idx < numUserIds; )
        {
            UInt32 available = numUserIds - idx;
            if (available > USER_PAGE_SIZE)
            {
                available = USER_PAGE_SIZE;
            }
 
            result = (BS2ErrorCode)API.BS2_GetUserSmallInfosEx(sdkContext, deviceID, curUidObjs, available, userBlobs);
            if (result == BS2ErrorCode.BS_SDK_SUCCESS)
            {
                for (UInt32 loop = 0; loop < available; ++loop)
                {
                    print(userBlobs[loop].user);
                    // don't need to release cardObj, FingerObj, FaceObj because we get only BS2User
                    if (userBlobs[loop].cardObjs != IntPtr.Zero)
                        API.BS2_ReleaseObject(userBlobs[loop].cardObjs);
                    if (userBlobs[loop].fingerObjs != IntPtr.Zero)
                        API.BS2_ReleaseObject(userBlobs[loop].fingerObjs);
                    if (userBlobs[loop].faceObjs != IntPtr.Zero)
                        API.BS2_ReleaseObject(userBlobs[loop].faceObjs);
                    if (userBlobs[loop].user_photo_obj != IntPtr.Zero)
                        API.BS2_ReleaseObject(userBlobs[loop].user_photo_obj);
                }
 
                idx += available;
                curUidObjs += (int)available * BS2Environment.BS2_USER_ID_SIZE;
            }
            else
            {
                Console.WriteLine("Got error({0}).", result);
                break;
            }
        }
 
        API.BS2_ReleaseObject(outUidObjs);
    }
}

함께 보기