00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __SLV2_PLUGIN_H__
00020 #define __SLV2_PLUGIN_H__
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 #include <stdint.h>
00027 #include <stdbool.h>
00028 #include "slv2/types.h"
00029 #include "slv2/port.h"
00030 #include "slv2/collections.h"
00031
00059 SLV2_API
00060 bool
00061 slv2_plugin_verify(SLV2Plugin plugin);
00062
00063
00080 SLV2_API
00081 SLV2Value
00082 slv2_plugin_get_uri(SLV2Plugin plugin);
00083
00084
00100 SLV2_API
00101 SLV2Value
00102 slv2_plugin_get_bundle_uri(SLV2Plugin plugin);
00103
00104
00117 SLV2_API
00118 SLV2Values
00119 slv2_plugin_get_data_uris(SLV2Plugin plugin);
00120
00121
00131 SLV2_API
00132 SLV2Value
00133 slv2_plugin_get_library_uri(SLV2Plugin plugin);
00134
00135
00145 SLV2_API
00146 SLV2Value
00147 slv2_plugin_get_name(SLV2Plugin plugin);
00148
00149
00152 SLV2_API
00153 SLV2PluginClass
00154 slv2_plugin_get_class(SLV2Plugin plugin);
00155
00156
00173 SLV2_API
00174 SLV2Values
00175 slv2_plugin_get_value(SLV2Plugin p,
00176 SLV2Value predicate);
00177
00178
00185 SLV2_API
00186 SLV2Values
00187 slv2_plugin_get_value_by_qname(SLV2Plugin p,
00188 const char* predicate);
00189
00190
00198 SLV2_API
00199 SLV2Values
00200 slv2_plugin_get_value_by_qname_i18n(SLV2Plugin p,
00201 const char* predicate);
00202
00203
00223 SLV2_API
00224 SLV2Values
00225 slv2_plugin_get_value_for_subject(SLV2Plugin p,
00226 SLV2Value subject_uri,
00227 SLV2Value predicate_uri);
00228
00229
00237 SLV2_API
00238 bool
00239 slv2_plugin_has_feature(SLV2Plugin p,
00240 SLV2Value feature_uri);
00241
00242
00255 SLV2_API
00256 SLV2Values
00257 slv2_plugin_get_supported_features(SLV2Plugin p);
00258
00259
00273 SLV2_API
00274 SLV2Values
00275 slv2_plugin_get_required_features(SLV2Plugin p);
00276
00277
00288 SLV2_API
00289 SLV2Values
00290 slv2_plugin_get_optional_features(SLV2Plugin p);
00291
00292
00297 SLV2_API
00298 uint32_t
00299 slv2_plugin_get_num_ports(SLV2Plugin p);
00300
00301
00316 SLV2_API
00317 void
00318 slv2_plugin_get_port_ranges_float(SLV2Plugin p,
00319 float* min_values,
00320 float* max_values,
00321 float* def_values);
00322
00331 SLV2_API
00332 uint32_t
00333 slv2_plugin_get_num_ports_of_class(SLV2Plugin p,
00334 SLV2Value class_1, ...);
00335
00343 SLV2_API
00344 bool
00345 slv2_plugin_has_latency(SLV2Plugin p);
00346
00347
00359 SLV2_API
00360 uint32_t
00361 slv2_plugin_get_latency_port_index(SLV2Plugin p);
00362
00363
00374 SLV2_API
00375 SLV2Values
00376 slv2_plugin_query_variable(SLV2Plugin plugin,
00377 const char* sparql_str,
00378 unsigned variable);
00379
00380
00391 SLV2_API
00392 unsigned
00393 slv2_plugin_query_count(SLV2Plugin plugin,
00394 const char* sparql_str);
00395
00396
00404 SLV2_API
00405 SLV2Port
00406 slv2_plugin_get_port_by_index(SLV2Plugin plugin,
00407 uint32_t index);
00408
00409
00419 SLV2_API
00420 SLV2Port
00421 slv2_plugin_get_port_by_symbol(SLV2Plugin plugin,
00422 SLV2Value symbol);
00423
00424
00437 SLV2_API
00438 SLV2UIs
00439 slv2_plugin_get_uis(SLV2Plugin plugin);
00440
00441
00449 SLV2_API
00450 SLV2Value
00451 slv2_plugin_get_author_name(SLV2Plugin plugin);
00452
00453
00461 SLV2_API
00462 SLV2Value
00463 slv2_plugin_get_author_email(SLV2Plugin plugin);
00464
00465
00473 SLV2_API
00474 SLV2Value
00475 slv2_plugin_get_author_homepage(SLV2Plugin plugin);
00476
00477
00480 #ifdef __cplusplus
00481 }
00482 #endif
00483
00484 #endif
00485