- make gns compile
[oweals/gnunet.git] / src / gns / gns.h
1 /*
2       This file is part of GNUnet
3       (C) 2012 Christian Grothoff (and other contributing authors)
4
5       GNUnet is free software; you can redistribute it and/or modify
6       it under the terms of the GNU General Public License as published
7       by the Free Software Foundation; either version 2, or (at your
8       option) any later version.
9
10       GNUnet is distributed in the hope that it will be useful, but
11       WITHOUT ANY WARRANTY; without even the implied warranty of
12       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13       General Public License for more details.
14
15       You should have received a copy of the GNU General Public License
16       along with GNUnet; see the file COPYING.  If not, write to the
17       Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18       Boston, MA 02111-1307, USA.
19  */
20
21 #include "gnunet_gns_service.h"
22
23 /**
24  * @file gns/gns.h
25  * @brief IPC messages between GNS API and GNS service
26  * @author Martin Schanzenbach
27  */
28 #ifndef GNS_H
29 #define GNS_H
30
31 GNUNET_NETWORK_STRUCT_BEGIN
32
33 /**
34  * Message from client to GNS service to lookup records.
35  */
36 struct GNUNET_GNS_ClientLookupMessage
37 {
38   /**
39     * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP
40    */
41   struct GNUNET_MessageHeader header;
42
43   /**
44    * Unique identifier for this request (for key collisions).
45    */
46   uint32_t id GNUNET_PACKED;
47
48   /**
49    * the type of record to look up
50    */
51   // FIXME: bad type - should be of GNUNET_GNS_RecordType
52   enum GNUNET_GNS_RecordType type;
53
54   /* Followed by the name to look up */
55 };
56
57
58 /**
59  * Message from GNS service to client: new results.
60  */
61 struct GNUNET_GNS_ClientLookupResultMessage
62 {
63   /**
64     * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT
65    */
66   struct GNUNET_MessageHeader header;
67
68   /**
69    * Unique identifier for this request (for key collisions).
70    */
71   uint32_t id GNUNET_PACKED;
72
73   /**
74    * The number of records contained in response
75    */  
76   uint32_t rd_count;
77
78   // FIXME: what format has a GNS_Record?
79   /* followed by rd_count GNUNET_NAMESTORE_RecordData structs*/
80
81 };
82
83 /**
84  * Message from client to GNS service to lookup records.
85  */
86 struct GNUNET_GNS_ClientShortenMessage
87 {
88   /**
89     * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN
90    */
91   struct GNUNET_MessageHeader header;
92
93   /**
94    * Unique identifier for this request
95    */
96   uint32_t id GNUNET_PACKED;
97
98   /* Followed by the name to shorten up */
99 };
100
101
102 /**
103  * Message from GNS service to client: shorten result.
104  */
105 struct GNUNET_GNS_ClientShortenResultMessage
106 {
107   /**
108     * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN_RESULT
109    */
110   struct GNUNET_MessageHeader header;
111
112   /**
113    * Unique identifier for this request (for key collisions).
114    */
115   uint32_t id GNUNET_PACKED;
116
117   /* followed by the shortened name or '\0' for no result*/
118
119 };
120 GNUNET_NETWORK_STRUCT_END
121
122 #endif