23 #include <plugins/openprs/aspect/openprs_inifin.h> 24 #include <plugins/openprs/aspect/openprs_kernel_manager.h> 25 #include <plugins/openprs/utils/openprs_comm.h> 26 #include <plugins/openprs/utils/openprs_server_proxy.h> 27 #include <core/threading/thread_finalizer.h> 28 #include <utils/time/time.h> 49 kernel_timeout_sec_ = 30.;
65 if (openprs_thread == NULL) {
67 "OpenPRSAspect, but RTTI says it " 68 "has not. ", thread->
name());
73 openprs_thread->openprs_data_paths_,
74 openprs_thread->openprs_gdb_delay_);
78 openprs_kernel_mgr_->mp_host().c_str(),
79 openprs_kernel_mgr_->mp_port(),
80 openprs_server_proxy_);
89 if ((now - &start) > kernel_timeout_sec_) {
91 throw Exception(
"OpenPRSAspect: timeout waiting for kernel startup");
97 "add (! (= @@FAWKES_MOD_DIR \"%s\"))", OPENPRS_MOD_DIR);
99 "add (! (= @@FAWKES_HOST \"%s\"))", fawkes_host_.c_str());
101 "add (! (= @@FAWKES_PORT \"%u\"))", fawkes_port_);
106 "add (! (= @@FAWKES_MP_NAME %s))",
117 if (openprs_thread == NULL) {
119 "OpenPRSAspect, but RTTI says it " 120 "has not. ", thread->
name());
124 openprs_thread->finalize_OpenPRSAspect();
141 fawkes_host_ = fawkes_host;
142 fawkes_port_ = fawkes_port;
143 openprs_kernel_mgr_ = openprs_kernel_mgr;
144 openprs_server_proxy_ = openprs_server_proxy;
145 openprs_mp_proxy_ = openprs_mp_proxy;
148 openprs_kernel_mgr_->mp_host().c_str(),
149 openprs_kernel_mgr_->mp_port(),
150 openprs_server_proxy_);
161 kernel_timeout_sec_ = timeout_sec;
const std::string openprs_local_name
The local message passer name for communication.
virtual void init(Thread *thread)
Initialize thread.
virtual void finalize(Thread *thread)
Finalize thread.
OpenPRS communication wrapper.
Fawkes library namespace.
const std::string openprs_kernel_name
The name of the kernel created for this thread.
A class for handling time.
Thread class encapsulation of pthreads.
OpenPRSAspectIniFin()
Constructor.
OpenPRS kernel creation and communication aspect.
LockPtr<> is a reference-counting shared lockable smartpointer.
~OpenPRSAspectIniFin()
Destructor.
Thread cannot be initialized.
Base class for exceptions in Fawkes.
const char * name() const
Get name of thread.
void prepare(const std::string &fawkes_host, unsigned short fawkes_port, LockPtr< OpenPRSKernelManager > &openprs_kernel_mgr, OpenPRSServerProxy *openprs_server_proxy, OpenPRSMessagePasserProxy *openprs_mp_proxy)
Prepare OpenPRS aspect initializer.
LockPtr< OpenPRSComm > openprs
OpenPRS kernel communication wrapper.
void transmit_command_f(const std::string &recipient, const char *format,...)
Transmit a command to an OpenPRS kernel.
Thread cannot be finalized.
void set_kernel_timeout(float timeout_sec)
Set timeout for kernel creation.
Time & stamp()
Set this time to the current time.
const Mode openprs_kernel_mode
The kernel mode, can be OPRS or XOPRS (with graphical interface).
Proxy for the OpenPRS server communication.
Aspect initializer/finalizer base class.