#include <orte.h>
#include <robottype.h>
#include <$ortegenfilename.h>
-#include <roboorte.h>
-
-#undef ROBOORTE_ROBOT_NAME
-#define ROBOORTE_ROBOT_NAME $roboorte_name
-
-#ifndef ROBOORTE_ROBOT_NAME
-#error No ROBOORTE_ROBOT_NAME defined!
-#endif
/* ORTE data */
-ROBOORTE_DATA {
+struct ${roboorte_name}_orte_data {
\tORTEDomain *$orte_domain;
\tint strength;
#ifdef __cplusplus
extern "C" {
-#endif
-ROBOORTE_INIT();
-ROBOORTE_DESTROY();
+#endif
+int ${roboorte_name}_roboorte_init(struct ${roboorte_name}_orte_data *data) __attribute ((warn_unused_result));
+int ${roboorte_name}_roboorte_destroy(struct ${roboorte_name}_orte_data *data);
(END)
foreach $var (@ortegen) {
print OUTFILE << "(END)";
-ROBOORTE_PUBLISHER_CREATE($var->{"topic"});
+void ${roboorte_name}_publisher_$var->{"topic"}_create(struct ${roboorte_name}_orte_data *data, ORTESendCallBack callback, void *arg);
(END)
}
foreach $var (@ortegen) {
print OUTFILE << "(END)";
-ROBOORTE_PUBLISHER_DESTROY($var->{"topic"});
+void ${roboorte_name}_publisher_$var->{"topic"}_destroy(struct ${roboorte_name}_orte_data *data);
(END)
}
foreach $var (@ortegen) {
print OUTFILE << "(END)";
-ROBOORTE_SUBSCRIBER_CREATE($var->{"topic"});
+ORTESubscription *${roboorte_name}_subscriber_$var->{"topic"}_create(struct ${roboorte_name}_orte_data *data, ORTERecvCallBack callback, void *arg);
(END)
}
*/
#include "$library_name_prefix$roboorte_name.h"
+#include <stdlib.h>
/* ----------------------------------------------------------------------
* CREATE PUBLISHERS
($dmsec, $dsec) = POSIX::modf($var->{"pubdelay"});
$dmsec = POSIX::floor($dmsec*1000);
print OUTFILE << "(END)";
-ROBOORTE_PUBLISHER_CREATE($var->{"topic"})
+void ${roboorte_name}_publisher_$var->{"topic"}_create(struct ${roboorte_name}_orte_data *data, ORTESendCallBack callback, void *arg)
{
\tNtpTime persistence, delay;
foreach $var (@ortegen) {
print OUTFILE << "(END)";
-ROBOORTE_PUBLISHER_DESTROY($var->{"topic"})
+void ${roboorte_name}_publisher_$var->{"topic"}_destroy(struct ${roboorte_name}_orte_data *data)
{
\tORTEPublicationDestroy($data_arg_name->$publication_prefix$var->{"topic"});
}
($dmsec, $dsec) = POSIX::modf($var->{"deadline"});
$dmsec = POSIX::floor($dmsec*1000);
print OUTFILE << "(END)";
-ROBOORTE_SUBSCRIBER_CREATE($var->{"topic"})
+ORTESubscription * ${roboorte_name}_subscriber_$var->{"topic"}_create(struct ${roboorte_name}_orte_data *data, ORTERecvCallBack callback, void *arg)
{
-\tORTESubscription *s;
\tNtpTime deadline, minimumSeparation;
\t
\t$var->{"type"}_type_register($data_arg_name->$orte_domain);
\t
\tNtpTimeAssembFromMs(deadline, $dsec, $dmsec);
\tNtpTimeAssembFromMs(minimumSeparation, $msec, $mmsec);
-\ts = ORTESubscriptionCreate(
+\treturn ORTESubscriptionCreate(
\t\t\t$data_arg_name->$orte_domain, $subscription_mode, $subscription_type,
\t\t\t"$var->{"topic"}", "$var->{"type"}",
\t\t\t&$data_arg_name->$var->{"topic"}, &deadline, &minimumSeparation,
* ORTE INITILIZATION AND DESTROY
* ---------------------------------------------------------------------- */
-ROBOORTE_INIT()
+int ${roboorte_name}_roboorte_init(struct ${roboorte_name}_orte_data *data)
{
\tint rv = 0;
-\t
+\tconst char *s;
+\tORTEDomainProp prop;
\tORTEInit();
-\tif ($data_arg_name->strength < 0)
+\tif ($data_arg_name->strength <= 0)
\t\t$data_arg_name->strength = $publication_strength;
+ if ((s = getenv("ORTE_STRENGTH"))) {
+ char *end;
+ long l = strtol(s, &end, 10);
+ if (s != end)
+ data->strength = l;
+ }
+
\tORTEVerbositySetOptions("ALL.0");
+\tORTEDomainPropDefaultGet(&prop);
+\tNTPTIME_BUILD(prop.baseProp.refreshPeriod, $refresh_period);
+\tNTPTIME_BUILD(prop.baseProp.expirationTime, $expiration_time);
\t$data_arg_name->$orte_domain = ORTEDomainAppCreate(ORTE_DEFAULT_DOMAIN,
-\t NULL, NULL, ORTE_FALSE);
+\t &prop, NULL, ORTE_FALSE);
\tif (!$data_arg_name->$orte_domain) {
\t\tprintf("ORTEDomainAppCreate failed!\\n");
\t\trv = -1;
\treturn rv;
}
-ROBOORTE_DESTROY()
+int ${roboorte_name}_roboorte_destroy(struct ${roboorte_name}_orte_data *data)
{
\treturn ORTEDomainAppDestroy($data_arg_name->$orte_domain);
}