차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:bs2_getuserdatas [2020/08/21 11:39]
kkshin [파라미터]
ko:bs2_getuserdatas [2021/12/30 14:10] (현재)
mark [샘플코드]
줄 18: 줄 18:
 [[user management api#​BS2UserBlob|BS2UserBlob 구조체 보기]] [[user management api#​BS2UserBlob|BS2UserBlob 구조체 보기]]
 </​callout>​ </​callout>​
 +
 +
 ==== 파라미터 ==== ==== 파라미터 ====
   * [In] ''//​context//''​ : Context   * [In] ''//​context//''​ : Context
줄 47: 줄 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]]\\