#ifndef CHROME_BROWSER_ASH_CROSAPI_CROSAPI_MANAGER_H_
#define CHROME_BROWSER_ASH_CROSAPI_CROSAPI_MANAGER_H_
#include <memory>
#include "base/functional/callback.h"
#include "chrome/browser/ash/crosapi/crosapi_id.h"
namespace mojo {
class PlatformChannelEndpoint;
}
namespace crosapi {
class CrosapiAsh;
class CrosapiManager {
public:
static bool IsInitialized();
static CrosapiManager* Get();
CrosapiManager();
CrosapiManager(const CrosapiManager&) = delete;
CrosapiManager& operator=(const CrosapiManager&) = delete;
~CrosapiManager();
CrosapiAsh* crosapi_ash() { return crosapi_ash_.get(); }
CrosapiId SendInvitation(mojo::PlatformChannelEndpoint local_endpoint,
base::OnceClosure disconnect_handler);
private:
CrosapiId::Generator crosapi_id_generator_;
std::unique_ptr<CrosapiAsh> crosapi_ash_;
};
}
#endif