| // Copyright 2016 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "base/android/unguessable_token_android.h" | 
 |  | 
 | #include "jni/UnguessableToken_jni.h" | 
 |  | 
 | namespace base { | 
 | namespace android { | 
 |  | 
 | ScopedJavaLocalRef<jobject> UnguessableTokenAndroid::Create( | 
 |     JNIEnv* env, | 
 |     const base::UnguessableToken& token) { | 
 |   const uint64_t high = token.GetHighForSerialization(); | 
 |   const uint64_t low = token.GetLowForSerialization(); | 
 |   DCHECK(high); | 
 |   DCHECK(low); | 
 |   return Java_UnguessableToken_create(env, high, low); | 
 | } | 
 |  | 
 | base::UnguessableToken UnguessableTokenAndroid::FromJavaUnguessableToken( | 
 |     JNIEnv* env, | 
 |     const JavaRef<jobject>& token) { | 
 |   const uint64_t high = | 
 |       Java_UnguessableToken_getHighForSerialization(env, token); | 
 |   const uint64_t low = Java_UnguessableToken_getLowForSerialization(env, token); | 
 |   DCHECK(high); | 
 |   DCHECK(low); | 
 |   return base::UnguessableToken::Deserialize(high, low); | 
 | } | 
 |  | 
 | ScopedJavaLocalRef<jobject> | 
 | UnguessableTokenAndroid::ParcelAndUnparcelForTesting( | 
 |     JNIEnv* env, | 
 |     const JavaRef<jobject>& token) { | 
 |   return Java_UnguessableToken_parcelAndUnparcelForTesting(env, token); | 
 | } | 
 |  | 
 | }  // namespace android | 
 | }  // namespace base |