chromium/chrome/browser/profiles/android/profile_resolver.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_PROFILES_ANDROID_PROFILE_RESOLVER_H_
#define CHROME_BROWSER_PROFILES_ANDROID_PROFILE_RESOLVER_H_

#include <string>

#include "base/functional/callback_forward.h"

class Profile;
class ProfileKey;

namespace profile_resolver {

using ProfileCallback = base::OnceCallback<void(Profile*)>;
using ProfileKeyCallback = base::OnceCallback<void(ProfileKey*)>;

// These functions provides a profile and C++ specific implementation of the
// Java BrowserContextHandleResolver interface. Generates a string uniquely
// identifying a Profile instance that can be later used to retrieve this
// instance. Works both for regular and off-the-record profiles.
void ResolveProfile(std::string token, ProfileCallback callback);
void ResolveProfileKey(std::string token, ProfileKeyCallback callback);
std::string TokenizeProfile(Profile* profile);
std::string TokenizeProfileKey(ProfileKey* profile_key);

}  // namespace profile_resolver

#endif  // CHROME_BROWSER_PROFILES_ANDROID_PROFILE_RESOLVER_H_