차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:bs2_getuserdatas [2021/12/02 11:28]
mark [함수]
ko:bs2_getuserdatas [2021/12/30 14:10] (현재)
mark [샘플코드]
줄 17: 줄 17:
 <callout type="​info">​ <callout type="​info">​
 [[user management api#​BS2UserBlob|BS2UserBlob 구조체 보기]] [[user management api#​BS2UserBlob|BS2UserBlob 구조체 보기]]
-</​callout>​ 
-<callout type="​info">​ 
-샘플코드[[https://​support.supremainc.com/​a/​solutions/​articles/​24000073140?​lang=en]] 
 </​callout>​ </​callout>​
  
-<callout type="​info">​ 
-<div> 
-[[C++]] 
-<code cpp> 
-sdkResult = BS2_GetUserDatas(context_,​ id, const_cast<​char*>​(uid.c_str()),​ numUser, &​userBlob,​ userMask); 
-if (BS_SDK_SUCCESS != sdkResult) 
-{ 
- TRACE("​BS2_GetUserDatas call failed: %d", sdkResult); 
- return sdkResult; 
- } 
-</​code>​ 
-</​div>​ 
-</​callout> ​ 
  
 ==== 파라미터 ==== ==== 파라미터 ====
줄 65: 줄 49:
 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다.
 \\  \\ 
 +
 +==== 샘플코드 ====
 +C++
 +<code cpp>
 +
 +sdkResult = BS2_GetUserDatas(context_,​ id, const_cast<​char*>​(uid.c_str()),​ numUser, &​userBlob,​ userMask);
 +if (BS_SDK_SUCCESS != sdkResult)
 +{
 +      TRACE("​BS2_GetUserDatas call failed: %d", sdkResult);
 +      return sdkResult;
 +}
 +
 +</​code>​
 +
 +C#
 +<code cpp>
 + if (numUserIds > 0)
 +                {
 +                    IntPtr curUidObjs = outUidObjs;
 +                    BS2UserBlob[] userBlobs = new BS2UserBlob[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_GetUserDatas(sdkContext,​ deviceID, curUidObjs, available, userBlobs, (UInt32)BS2UserMaskEnum.ALL);​
 +                        if (result == BS2ErrorCode.BS_SDK_SUCCESS)
 +                        {
 +                            for (UInt32 loop = 0; loop < available; ++loop)
 +                            {
 +                                print(sdkContext,​ 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);​
 +                            }
 +
 +                            idx += available;
 +                            curUidObjs += (int)available*BS2Environment.BS2_USER_ID_SIZE;​
 +                        }
 +                        else
 +                        {
 +                            Console.WriteLine("​Got error({0}).",​ result);
 +                            break;
 +                        }
 +                    }
 +
 +                    API.BS2_ReleaseObject(outUidObjs);​
 +                }
 +</​code>​
 +
 ==== 함께 보기 ==== ==== 함께 보기 ====
 [[BS2_GetUserList]]\\ [[BS2_GetUserList]]\\