100  BOOL init(CliprdrClientContext* clip);
 
  101  BOOL uninit(CliprdrClientContext* clip);
 
  103  bool handle_update(
const SDL_ClipboardEvent& ev);
 
  106  UINT SendClientCapabilities();
 
  107  void clearServerFormats();
 
  108  UINT SendFormatListResponse(BOOL status);
 
  109  UINT SendDataResponse(
const BYTE* data, 
size_t size);
 
  110  UINT SendDataRequest(uint32_t formatID, 
const std::string& mime);
 
  112  std::string getServerFormat(uint32_t 
id);
 
  113  uint32_t serverIdForMime(
const std::string& mime);
 
  115  bool contains(
const char** mime_types, Sint32 count);
 
  117  static UINT MonitorReady(CliprdrClientContext* context,
 
  120  static UINT ReceiveServerCapabilities(CliprdrClientContext* context,
 
  122  static UINT ReceiveServerFormatList(CliprdrClientContext* context,
 
  124  static UINT ReceiveFormatListResponse(CliprdrClientContext* context,
 
  126  static std::shared_ptr<BYTE> ReceiveFormatDataRequestHandle(
 
  128  static UINT ReceiveFormatDataRequest(CliprdrClientContext* context,
 
  130  static UINT ReceiveFormatDataResponse(CliprdrClientContext* context,
 
  133  static const void* SDLCALL ClipDataCb(
void* userdata, 
const char* mime_type, 
size_t* size);
 
  134  static void SDLCALL ClipCleanCb(
void* userdata);
 
  136  static bool mime_is_file(
const std::string& mime);
 
  137  static bool mime_is_text(
const std::string& mime);
 
  138  static bool mime_is_image(
const std::string& mime);
 
  139  static bool mime_is_bmp(
const std::string& mime);
 
  140  static bool mime_is_html(
const std::string& mime);
 
  143  CliprdrFileContext* _file = 
nullptr;
 
  144  CliprdrClientContext* _ctx = 
nullptr;
 
  145  wLog* _log = 
nullptr;
 
  146  wClipboard* _system = 
nullptr;
 
  147  std::atomic<bool> _sync = 
false;
 
  149  Uint64 _last_timestamp = 0;
 
  151  std::vector<CliprdrFormat> _serverFormats;
 
  154  std::queue<ClipRequest> _request_queue;
 
  158    cache_entry(
size_t len, std::shared_ptr<void> p) : size(len), ptr(std::move(p))
 
  163    std::shared_ptr<void> ptr;
 
  165  std::map<std::string, cache_entry> _cache_data;
 
  166  std::vector<const char*> _current_mimetypes;
 
  168  std::string _mime_uuid;