001package org.kernel.kmod;
002
003public @de.dentrassi.varlink.spi.Interface(name = "org.kernel.kmod", factory = KmodImpl.Factory.class) interface Kmod {
004        public static class Parameter {
005                private java.lang.String name;
006
007                public java.lang.String getName() {
008                        return this.name;
009                }
010
011                public void setName(java.lang.String name) {
012                        this.name = name;
013                }
014
015                private java.lang.String type;
016
017                public java.lang.String getType() {
018                        return this.type;
019                }
020
021                public void setType(java.lang.String type) {
022                        this.type = type;
023                }
024
025                private java.lang.String description;
026
027                public java.lang.String getDescription() {
028                        return this.description;
029                }
030
031                public void setDescription(java.lang.String description) {
032                        this.description = description;
033                }
034        }
035
036        public static class ModuleInfo {
037                private java.lang.String name;
038
039                public java.lang.String getName() {
040                        return this.name;
041                }
042
043                public void setName(java.lang.String name) {
044                        this.name = name;
045                }
046
047                private java.lang.String description;
048
049                public java.lang.String getDescription() {
050                        return this.description;
051                }
052
053                public void setDescription(java.lang.String description) {
054                        this.description = description;
055                }
056
057                private java.lang.String path;
058
059                public java.lang.String getPath() {
060                        return this.path;
061                }
062
063                public void setPath(java.lang.String path) {
064                        this.path = path;
065                }
066
067                private java.lang.String author;
068
069                public java.lang.String getAuthor() {
070                        return this.author;
071                }
072
073                public void setAuthor(java.lang.String author) {
074                        this.author = author;
075                }
076
077                private java.lang.String license;
078
079                public java.lang.String getLicense() {
080                        return this.license;
081                }
082
083                public void setLicense(java.lang.String license) {
084                        this.license = license;
085                }
086
087                private java.lang.String version;
088
089                public java.lang.String getVersion() {
090                        return this.version;
091                }
092
093                public void setVersion(java.lang.String version) {
094                        this.version = version;
095                }
096
097                private java.lang.String srcversion;
098
099                public java.lang.String getSrcversion() {
100                        return this.srcversion;
101                }
102
103                public void setSrcversion(java.lang.String srcversion) {
104                        this.srcversion = srcversion;
105                }
106
107                private java.lang.String vermagic;
108
109                public java.lang.String getVermagic() {
110                        return this.vermagic;
111                }
112
113                public void setVermagic(java.lang.String vermagic) {
114                        this.vermagic = vermagic;
115                }
116
117                private java.lang.String depends;
118
119                public java.lang.String getDepends() {
120                        return this.depends;
121                }
122
123                public void setDepends(java.lang.String depends) {
124                        this.depends = depends;
125                }
126
127                private java.util.List<java.lang.String> aliases;
128
129                public java.util.List<java.lang.String> getAliases() {
130                        return this.aliases;
131                }
132
133                public void setAliases(java.util.List<java.lang.String> aliases) {
134                        this.aliases = aliases;
135                }
136
137                private java.util.List<Parameter> parameters;
138
139                public java.util.List<Parameter> getParameters() {
140                        return this.parameters;
141                }
142
143                public void setParameters(java.util.List<Parameter> parameters) {
144                        this.parameters = parameters;
145                }
146        }
147
148        public static class LoadedModule {
149                private java.lang.String name;
150
151                public java.lang.String getName() {
152                        return this.name;
153                }
154
155                public void setName(java.lang.String name) {
156                        this.name = name;
157                }
158
159                private java.lang.Long size;
160
161                public java.lang.Long getSize() {
162                        return this.size;
163                }
164
165                public void setSize(java.lang.Long size) {
166                        this.size = size;
167                }
168
169                private java.lang.Long use_count;
170
171                public java.lang.Long getUse_count() {
172                        return this.use_count;
173                }
174
175                public void setUse_count(java.lang.Long use_count) {
176                        this.use_count = use_count;
177                }
178
179                private java.util.List<java.lang.String> used_by;
180
181                public java.util.List<java.lang.String> getUsed_by() {
182                        return this.used_by;
183                }
184
185                public void setUsed_by(java.util.List<java.lang.String> used_by) {
186                        this.used_by = used_by;
187                }
188        }
189
190        public static class UnknownModuleException extends java.lang.RuntimeException {
191                private static final long serialVersionUID = 1L;
192
193                public static class Parameters {
194                }
195
196                private final Parameters parameters;
197
198                public UnknownModuleException(final Parameters parameters) {
199                        this.parameters = parameters;
200                }
201
202                public Parameters getParameters() {
203                        return this.parameters;
204                }
205        }
206
207        public static class NoInfoAvailableException extends java.lang.RuntimeException {
208                private static final long serialVersionUID = 1L;
209
210                public static class Parameters {
211                }
212
213                private final Parameters parameters;
214
215                public NoInfoAvailableException(final Parameters parameters) {
216                        this.parameters = parameters;
217                }
218
219                public Parameters getParameters() {
220                        return this.parameters;
221                }
222        }
223
224        public static class InvalidParameterException extends java.lang.RuntimeException {
225                private static final long serialVersionUID = 1L;
226
227                public static class Parameters {
228                }
229
230                private final Parameters parameters;
231
232                public InvalidParameterException(final Parameters parameters) {
233                        this.parameters = parameters;
234                }
235
236                public Parameters getParameters() {
237                        return this.parameters;
238                }
239        }
240
241        public interface Async {
242                public java.util.concurrent.CompletableFuture<ModuleInfo> info(final java.lang.String module);
243
244                public java.util.concurrent.CompletableFuture<java.util.List<LoadedModule>> list();
245        }
246
247        public Async async();
248
249        public interface Sync {
250                public ModuleInfo info(final java.lang.String module);
251
252                public java.util.List<LoadedModule> list();
253        }
254
255        public default Sync sync() {
256                return new Sync() {
257                        public ModuleInfo info(final java.lang.String module) {
258                                return de.dentrassi.varlink.spi.Syncer.await(async().info(module));
259                        }
260
261                        public java.util.List<LoadedModule> list() {
262                                return de.dentrassi.varlink.spi.Syncer.await(async().list());
263                        }
264                };
265        }
266}