10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-13 16:55:26 +02:00
quantum_package/ocaml/Address.ml

61 lines
1.2 KiB
OCaml
Raw Normal View History

2017-08-18 18:28:33 +02:00
open Core
2015-12-03 23:51:10 +01:00
module Tcp : sig
type t
val of_string : string -> t
val to_string : t -> string
2016-02-19 00:20:28 +01:00
val create : host:string -> port:int -> t
2015-12-03 23:51:10 +01:00
end = struct
type t = string
let of_string x =
2017-05-17 21:19:43 +02:00
if not (String.is_prefix ~prefix:"tcp://" x) then
invalid_arg "Address Invalid"
;
2015-12-03 23:51:10 +01:00
x
2016-02-19 00:20:28 +01:00
let create ~host ~port =
assert (port > 0);
Printf.sprintf "tcp://%s:%d" host port
2015-12-03 23:51:10 +01:00
let to_string x = x
end
module Ipc : sig
type t
val of_string : string -> t
val to_string : t -> string
2016-02-19 00:20:28 +01:00
val create : string -> t
2015-12-03 23:51:10 +01:00
end = struct
type t = string
let of_string x =
assert (String.is_prefix ~prefix:"ipc://" x);
x
2016-02-19 00:20:28 +01:00
let create name =
Printf.sprintf "ipc://%s" name
2015-12-03 23:51:10 +01:00
let to_string x = x
end
module Inproc : sig
type t
val of_string : string -> t
val to_string : t -> string
2016-02-19 00:20:28 +01:00
val create : string -> t
2015-12-03 23:51:10 +01:00
end = struct
type t = string
let of_string x =
assert (String.is_prefix ~prefix:"inproc://" x);
x
2016-02-19 00:20:28 +01:00
let create name =
2016-07-15 15:31:16 +02:00
Printf.sprintf "inproc://%s" name
2015-12-03 23:51:10 +01:00
let to_string x = x
end
type t =
| Tcp of Tcp.t
| Ipc of Ipc.t
| Inproc of Inproc.t
let to_string = function
| Tcp x -> Tcp.to_string x
| Ipc x -> Ipc.to_string x
| Inproc x -> Inproc.to_string x