note_taking_client.h 937 B

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ASH_PUBLIC_CPP_NOTE_TAKING_CLIENT_H_
  5. #define ASH_PUBLIC_CPP_NOTE_TAKING_CLIENT_H_
  6. #include "ash/public/cpp/ash_public_export.h"
  7. namespace ash {
  8. // Interface for ash to notify the client (e.g. Chrome) about the new note
  9. // creation.
  10. class ASH_PUBLIC_EXPORT NoteTakingClient {
  11. public:
  12. static NoteTakingClient* GetInstance();
  13. NoteTakingClient(const NoteTakingClient&) = delete;
  14. NoteTakingClient& operator=(const NoteTakingClient&) = delete;
  15. // Returns true when it can create notes.
  16. virtual bool CanCreateNote() = 0;
  17. // Called when the controller needs to create a new note.
  18. virtual void CreateNote() = 0;
  19. protected:
  20. NoteTakingClient();
  21. virtual ~NoteTakingClient();
  22. };
  23. } // namespace ash
  24. #endif // ASH_PUBLIC_CPP_NOTE_TAKING_CLIENT_H_