Goby3 3.3.0
2025.07.10
Loading...
Searching...
No Matches
application.h File Reference
#include <jlcxx/functions.hpp>
#include <jlcxx/jlcxx.hpp>
#include "goby/middleware/application/interface.h"
#include "goby/middleware/group.h"
#include "goby/middleware/marshalling/interface.h"
#include "goby/time.h"

Go to the source code of this file.

Classes

class  goby::middleware::julia::Application< AppBase >
 
struct  goby::middleware::julia::Identifier
 
class  goby::middleware::julia::ApplicationWrapper< App >
 

Namespaces

namespace  goby
 The global namespace for the Goby project.
 
namespace  goby::middleware
 Objects implementing the Goby nested middleware.
 
namespace  goby::middleware::julia
 

Macros

#define GOBY_JULIA_IF_PUBLICATION(SCHEME, LAYER_ENUM, LAYER_FUNCTION, GROUP, TYPE)
 
#define GOBY_JULIA_IF_SUBSCRIPTION(SCHEME, LAYER_ENUM, LAYER_FUNCTION, GROUP, TYPE)
 
#define GOBY_JULIA_FAIL(PUBLISH_OR_SUBSCRIBE)
 
#define GOBY_JULIA_QUOTE(name)   #name
 
#define GOBY_JULIA_DEFINE_MODULE(APPLICATION_NAME)
 

Enumerations

enum class  goby::middleware::julia::PubSubLayer { goby::middleware::julia::INTERTHREAD = 0 , goby::middleware::julia::INTERPROCESS = 1 , goby::middleware::julia::INTERMODULE = 2 }
 

Functions

bool goby::middleware::julia::operator== (const Identifier &i1, const Identifier &i2)
 
template<typename App >
void goby::middleware::julia::define_julia_module (jlcxx::Module &types, const std::string &app_name)
 
template<typename DataType , int scheme>
std::vector< std::uint8_t > goby::middleware::julia::serialize_uint8 (const DataType &msg)
 
std::ostream & operator<< (std::ostream &os, const goby::middleware::julia::Identifier &i)
 

Macro Definition Documentation

◆ GOBY_JULIA_DEFINE_MODULE

#define GOBY_JULIA_DEFINE_MODULE (   APPLICATION_NAME)
Value:
JLCXX_MODULE define_julia_module(jlcxx::Module& types) \
{ \
goby::middleware::julia::define_julia_module<APPLICATION_NAME>( \
types, GOBY_JULIA_QUOTE(APPLICATION_NAME)); \
}
#define GOBY_JULIA_QUOTE(name)

Definition at line 220 of file application.h.

◆ GOBY_JULIA_FAIL

#define GOBY_JULIA_FAIL (   PUBLISH_OR_SUBSCRIBE)
Value:
goby::glog << PUBLISH_OR_SUBSCRIBE " not defined for these parameters: [" << id \
<< "]. Please include in interfaces.yml and re-generate to include them." \
<< std::endl;
util::FlexOstream glog
Access the Goby logger through this object.

Definition at line 212 of file application.h.

◆ GOBY_JULIA_IF_PUBLICATION

#define GOBY_JULIA_IF_PUBLICATION (   SCHEME,
  LAYER_ENUM,
  LAYER_FUNCTION,
  GROUP,
  TYPE 
)
Value:
goby::middleware::julia::PubSubLayer::LAYER_ENUM, TYPE::descriptor()->name(), \
goby::middleware::MarshallingScheme::SCHEME, GROUP}) \
{ \
decltype(bytes.end()) actual_end; \
auto msg = goby::middleware::SerializerParserHelper< \
TYPE, goby::middleware::MarshallingScheme::SCHEME>::parse(bytes.begin(), bytes.end(), \
actual_end); \
LAYER_FUNCTION().publish<GROUP>(msg); \
return; \
}
The global namespace for the Goby project.

Definition at line 183 of file application.h.

◆ GOBY_JULIA_IF_SUBSCRIPTION

#define GOBY_JULIA_IF_SUBSCRIPTION (   SCHEME,
  LAYER_ENUM,
  LAYER_FUNCTION,
  GROUP,
  TYPE 
)
Value:
goby::middleware::julia::PubSubLayer::LAYER_ENUM, TYPE::descriptor()->name(), \
goby::middleware::MarshallingScheme::SCHEME, GROUP)) \
{ \
LAYER_FUNCTION().subscribe<GROUP>( \
[=](const TYPE& pb) \
{ \
std::vector<std::uint8_t> bytes = goby::middleware::julia::serialize_uint8< \
TYPE, goby::middleware::MarshallingScheme::SCHEME>(pb); \
jlcxx::JuliaFunction cb(func, module); \
cb(id.layer, id.type_name, id.scheme, id.group, bytes); \
}); \
return; \
}
goby::util::logger::GroupSetter group(std::string n)
std::vector< std::uint8_t > serialize_uint8(const DataType &msg)

Definition at line 196 of file application.h.

◆ GOBY_JULIA_QUOTE

#define GOBY_JULIA_QUOTE (   name)    #name

Definition at line 219 of file application.h.

Function Documentation

◆ operator<<()

std::ostream & operator<< ( std::ostream &  os,
const goby::middleware::julia::Identifier i 
)

Definition at line 166 of file application.h.