summaryrefslogtreecommitdiff
path: root/src/xcb_connection.hh
blob: 74ee751225b9c63489e6bc27fe02735122790aac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef XCB_CONNECTION_HH
#define XCB_CONNECTION_HH

#include <memory>
#include <xcb/xcb.h>

namespace xcb {

namespace internal {

struct xcb_connection_deleter {
  void operator() (xcb_connection_t* ptr) {
    xcb_disconnect(ptr);
  }
};

}  // namespace internal

typedef std::shared_ptr<xcb_connection_t> shared_conn;
typedef std::unique_ptr<xcb_connection_t,
                        internal::xcb_connection_deleter> unique_conn;

shared_conn make_shared_conn(xcb_connection_t* conn);
unique_conn make_unique_conn(xcb_connection_t* conn);

xcb_screen_t* get_screen(xcb_connection_t* conn, int screen_index);

}  // namespace xcb

#endif  // XCB_CONNECTION_HH