package obus

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file oBus_context.ml

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
31
32
33
34
35
36
37
(*
 * oBus_context.ml
 * ---------------
 * Copyright : (c) 2010, Jeremie Dimino <jeremie@dimino.org>
 * Licence   : BSD3
 *
 * This file is a part of obus, an ocaml implementation of D-Bus.
 *)

type t = {
  connection : OBus_connection.t;
  flags : OBus_message.flags;
  sender : OBus_peer.t;
  destination : OBus_peer.t;
  serial : OBus_message.serial;
}

let key = Lwt.new_key ()

let get () =
  match Lwt.get key with
    | Some ctx -> ctx
    | None -> failwith "OBus_context.get: not in a method call handler"

let make ~connection ~message = {
  connection = connection;
  flags = OBus_message.flags message;
  sender = OBus_peer.make connection (OBus_message.sender message);
  destination = OBus_peer.make connection (OBus_message.destination message);
  serial = OBus_message.serial message;
}

let connection ctx = ctx.connection
let flags ctx = ctx.flags
let serial ctx = ctx.serial
let sender ctx = ctx.sender
let destination ctx = ctx.destination
OCaml

Innovation. Community. Security.