librpc
rpcd.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2017 Two Pore Guys, Inc.
3  * All rights reserved
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted providing that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
23  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24  * POSSIBILITY OF SUCH DAMAGE.
25  *
26  */
27 
28 #ifndef LIBRPC_RPCD_H
29 #define LIBRPC_RPCD_H
30 
31 #include <rpc/client.h>
32 
37 #define RPCD_SOCKET_ENV "RPCD_SOCKET_LOCATION"
38 #define RPCD_SOCKET_LOCATION "unix:
39 #define RPCD_MANAGER_INTERFACE "com.twoporeguys.rpcd.ServiceManager"
40 #define RPCD_SERVICE_INTERFACE "com.twoporeguys.rpcd.Service"
41 
45 typedef void (^rpcd_service_applier_t)(const char *_Nonnull name,
46  const char *_Nullable description);
47 
55 _Nullable rpc_client_t rpcd_connect_to(const char *_Nullable rpcd_uri,
56  const char *_Nonnull service_name);
57 
65 int rpcd_services_apply(const char *_Nullable rpcd_uri,
66  _Nonnull rpcd_service_applier_t applier);
67 
75 int rpcd_register(const char *_Nonnull uri, const char *_Nonnull name,
76  const char *_Nullable description);
77 
83 int rpcd_unregister(const char *_Nonnull name);
84 
85 #endif /* LIBRPC_RPCD_H */
_Nullable rpc_client_t rpcd_connect_to(const char *_Nullable rpcd_uri, const char *_Nonnull service_name)
int rpcd_register(const char *_Nonnull uri, const char *_Nonnull name, const char *_Nullable description)
int rpcd_services_apply(const char *_Nullable rpcd_uri, _Nonnull rpcd_service_applier_t applier)
int rpcd_unregister(const char *_Nonnull name)
struct rpc_client * rpc_client_t
Definition: client.h:52