glitch in the license text detected by hyazinthe, thank you!
[oweals/gnunet.git] / src / regex / regex_ipc.h
1 /*
2      This file is part of GNUnet
3      Copyright (C) 2012, 2013 GNUnet e.V.
4
5      GNUnet is free software: you can redistribute it and/or modify it
6      under the terms of the GNU Affero General Public License as published
7      by the Free Software Foundation, either version 3 of the License,
8      or (at your 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      Affero General Public License for more details.
14 */
15 /**
16  * @file regex/regex_ipc.h
17  * @brief regex IPC messages (not called 'regex.h' due to conflict with
18  *        system headers)
19  * @author Christian Grothoff
20  */
21 #ifndef REGEX_IPC_H
22 #define REGEX_IPC_H
23
24 #include "gnunet_util_lib.h"
25
26 /**
27  * Request for regex service to announce capability.
28  */
29 struct AnnounceMessage
30 {
31
32   /**
33    * Type is GNUNET_MESSAGE_TYPE_REGEX_ANNOUNCE
34    */
35   struct GNUNET_MessageHeader header;
36
37   /**
38    * How many characters can we squeeze per edge?
39    */
40   uint16_t compression;
41
42   /**
43    * Always zero.
44    */
45   uint16_t reserved;
46
47   /**
48    * Delay between repeated announcements.
49    */
50   struct GNUNET_TIME_RelativeNBO refresh_delay;
51
52   /* followed by 0-terminated regex as string */
53 };
54
55
56 /**
57  * Message to initiate regex search.
58  */
59 struct RegexSearchMessage
60 {
61   /**
62    * Type is GNUNET_MESSAGE_TYPE_REGEX_SEARCH
63    */
64   struct GNUNET_MessageHeader header;
65
66   /* followed by 0-terminated search string */
67
68 };
69
70
71 /**
72  * Result from regex search.
73  */
74 struct ResultMessage
75 {
76   /**
77    * Type is GNUNET_MESSAGE_TYPE_REGEX_RESULT
78    */
79   struct GNUNET_MessageHeader header;
80
81   /**
82    * Number of entries in the GET path.
83    */
84   uint16_t get_path_length;
85
86   /**
87    * Number of entries in the PUT path.
88    */
89   uint16_t put_path_length;
90
91   /**
92    * Identity of the peer that was found.
93    */
94   struct GNUNET_PeerIdentity id;
95
96   /* followed by GET path and PUT path arrays */
97
98 };
99
100
101 /* end of regex_ipc.h */
102 #endif