8 #pragma GCC diagnostic push
9 #pragma GCC diagnostic ignored "-Wpedantic"
23 #include <mal/Cii.hpp>
24 #include <mal/ps/DataEntity.hpp>
25 #include <mal/Mal.hpp>
26 #include <mal/rr/Ami.hpp>
27 #include <mal/rr/ServerAmi.hpp>
28 #include <mal/rr/da/DataAccess.hpp>
29 #include <pymal/delegates/ps/DataEntityBaseDelegate.hpp>
30 #include <pymal/delegates/ps/DataEventFilterBaseDelegate.hpp>
31 #include <pymal/delegates/ps/PublisherDelegate.hpp>
32 #include <pymal/delegates/ps/InstancePublisherDelegate.hpp>
33 #include <pymal/delegates/ps/SubscriberDelegate.hpp>
34 #include <pymal/delegates/ps/LoanedDataEntityDelegate.hpp>
35 #include <pymal/delegates/ps/DataEventFilterDelegate.hpp>
36 #include <pymal/delegates/ps/DataEventDelegate.hpp>
37 #include <pymal/delegates/ps/SubscriptionDelegate.hpp>
38 #include <pymal/delegates/ps/MrvSubscriberDelegate.hpp>
39 #include <pymal/delegates/rr/ClientRrEntityBaseDelegate.hpp>
40 #include <pymal/delegates/rr/AmiBaseDelegate.hpp>
41 #include <pymal/delegates/rr/AmiDelegate.hpp>
42 #include <pymal/delegates/rr/ServerAmiDelegate.hpp>
43 #include <pymal/delegates/rr/ServerContextDelegate.hpp>
44 #include <pymal/delegates/FutureDelegate.hpp>
45 #include <pymal/delegates/FutureUtil.hpp>
46 #include <pymal/support/ExceptionSupport.hpp>
47 #include <pymal/support/SharedVector.hpp>
52 #pragma GCC visibility push(hidden)
55 #include <pymal/pybind11/pybind11.h>
56 #include <pymal/pybind11/chrono.h>
57 #include <pymal/pybind11/stl.h>
58 #include <pymal/pybind11/stl_bind.h>
59 #include <pymal/pybind11/functional.h>
62 namespace py = pybind11;
83 std::string full_name = scope.attr(
"__name__").cast<std::string>() +
84 std::string(
".") +
name;
85 m_ptr = PyErr_NewException(
const_cast<char *
>(full_name.c_str()), base, NULL);
86 if (hasattr(scope,
name))
87 py::pybind11_fail(
"Error during initialization: multiple incompatible "
88 "definitions with name \"" + std::string(
name) +
"\"");
90 scope.attr(
name) = *
this;
96 PyErr_SetString(m_ptr, e.what());
101 ::elt::mal::bindings::MalPythonExceptionObjectPtr result(exc);
103 py::list arglist(arguments);
104 if (arglist.size() > 0) {
105 exc -> desc_ = py::cast<std::string>(arglist.attr(
"pop")(0));
107 if (arglist.size() > 0) {
108 exc -> code_ = py::cast<int32_t>(arglist.attr(
"pop")(0));
110 }
catch (py::cast_error &e) {
111 std::cerr <<
"cpp_exception_factory for ExceptionErrExc cast fail: " << e.what() << std::endl;
112 }
catch (py::error_already_set &e) {
113 std::cerr <<
"cpp_exception_factory for ExceptionErrExc general fail: " << e.what() << std::endl;
120 throw ::exmalif::ExceptionErr(desc_,code_);
128 (*this).attr(
"_cpp_exception_factory") = py::cpp_function([
this](py::object arguments) {
130 },
"Return container pointer for C++ exception to be thrown");
131 (*this).attr(
"getDesc") = py::cpp_function([
this]() {
133 },
"Return value of desc");
134 (*this).attr(
"getCode") = py::cpp_function([
this]() {
136 },
"Return value of code");
149 public virtual ::elt::mal::bindings::rr::ClientRrEntityBaseDelegate {
157 pStdCmdsSync(
std::move(other)), rStdCmdsSync(*pStdCmdsSync) {}
159 pStdCmdsSync(nullptr), rStdCmdsSync(const_cast<
StdCmdsSync&>(other)) {}
163 void close()
override { rStdCmdsSync.close(); }
167 py::gil_scoped_release
release;
168 return ::elt::mal::bindings::FutureDelegate<void>(rStdCmdsSync.asyncConnect());
172 const ::elt::mal::rr::ClientRrEntity::ConnectionListener &listener)
override {
173 return rStdCmdsSync.registerConnectionListener(listener);
176 std::shared_ptr<::elt::mal::Mal>
getMal()
const override {
177 return rStdCmdsSync.getMal();
182 return rStdCmdsSync.
Stop();
186 return rStdCmdsSync.
Init();
190 return rStdCmdsSync.
Reset();
194 return rStdCmdsSync.
Enable();
214 return rStdCmdsSync.
Config();
218 return rStdCmdsSync.
Exit();
221 std::string
SetLogLevel(
const std::shared_ptr<::exmalif::LogInfo>& info) {
225 std::string
Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos) {
226 return rStdCmdsSync.
Preset(pos);
229 std::string
Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos) {
230 return rStdCmdsSync.
Move(pos);
236 return std::unique_ptr<::elt::mal::bindings::rr::AmiBaseDelegate>(
237 new ::elt::mal::bindings::rr::AmiDelegate<std::string,
247 std::unique_ptr<StdCmdsSync> pStdCmdsSync;
254 public virtual ::elt::mal::bindings::rr::ClientRrEntityBaseDelegate {
262 pStdCmdsAsync(
std::move(other)), rStdCmdsAsync(*pStdCmdsAsync) {}
264 pStdCmdsAsync(nullptr), rStdCmdsAsync(const_cast<
StdCmdsAsync&>(other)) {}
268 void close()
override { rStdCmdsAsync.close(); }
272 py::gil_scoped_release
release;
273 return ::elt::mal::bindings::FutureDelegate<void>(rStdCmdsAsync.asyncConnect());
277 const ::elt::mal::rr::ClientRrEntity::ConnectionListener &listener)
override {
278 return rStdCmdsAsync.registerConnectionListener(listener);
281 std::shared_ptr<::elt::mal::Mal>
getMal()
const override {
282 return rStdCmdsAsync.getMal();
286 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
288 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
289 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
290 rStdCmdsAsync.
Stop()));
293 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
295 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
296 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
297 rStdCmdsAsync.
Init()));
300 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
302 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
303 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
304 rStdCmdsAsync.
Reset()));
307 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
309 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
310 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
314 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
316 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
317 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
321 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
323 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
324 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
328 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
330 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
331 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
335 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
337 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
338 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
342 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
344 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
345 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
349 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
351 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
352 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
353 rStdCmdsAsync.
Exit()));
356 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
358 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
359 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
363 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
364 Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos) {
365 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
366 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
367 rStdCmdsAsync.
Preset(pos)));
370 std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>
371 Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos) {
372 return std::unique_ptr<::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>>(
373 new ::elt::mal::bindings::FutureDelegate<std::string, ::exmalif::StdCmds>(
374 rStdCmdsAsync.
Move(pos)));
380 return std::unique_ptr<::elt::mal::bindings::rr::AmiBaseDelegate>(
381 new ::elt::mal::bindings::rr::AmiDelegate<std::string,
391 std::unique_ptr<StdCmdsAsync> pStdCmdsAsync;
400 py::gil_scoped_acquire acquire;
402 auto pyresult = mPyImpl.attr(
"Stop")();
403 return pyresult.cast<std::string>();
404 }
catch(py::error_already_set &what) {
406 py::object obj = what.value();
407 if (py::hasattr(obj,
"_cpp_exception_factory")) {
409 if (py::hasattr(obj,
"args")) {
410 arguments = obj.attr(
"args");
412 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
413 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
414 ex.instance() -> throw_cpp_exception();
416 throw std::runtime_error(what.what());
419 throw std::runtime_error(
"Python implementation exception handler - unknown error");
422 py::gil_scoped_acquire acquire;
424 auto pyresult = mPyImpl.attr(
"Init")();
425 return pyresult.cast<std::string>();
426 }
catch(py::error_already_set &what) {
428 py::object obj = what.value();
429 if (py::hasattr(obj,
"_cpp_exception_factory")) {
431 if (py::hasattr(obj,
"args")) {
432 arguments = obj.attr(
"args");
434 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
435 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
436 ex.instance() -> throw_cpp_exception();
438 throw std::runtime_error(what.what());
441 throw std::runtime_error(
"Python implementation exception handler - unknown error");
444 py::gil_scoped_acquire acquire;
446 auto pyresult = mPyImpl.attr(
"Reset")();
447 return pyresult.cast<std::string>();
448 }
catch(py::error_already_set &what) {
450 py::object obj = what.value();
451 if (py::hasattr(obj,
"_cpp_exception_factory")) {
453 if (py::hasattr(obj,
"args")) {
454 arguments = obj.attr(
"args");
456 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
457 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
458 ex.instance() -> throw_cpp_exception();
460 throw std::runtime_error(what.what());
463 throw std::runtime_error(
"Python implementation exception handler - unknown error");
466 py::gil_scoped_acquire acquire;
468 auto pyresult = mPyImpl.attr(
"Enable")();
469 return pyresult.cast<std::string>();
470 }
catch(py::error_already_set &what) {
472 py::object obj = what.value();
473 if (py::hasattr(obj,
"_cpp_exception_factory")) {
475 if (py::hasattr(obj,
"args")) {
476 arguments = obj.attr(
"args");
478 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
479 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
480 ex.instance() -> throw_cpp_exception();
482 throw std::runtime_error(what.what());
485 throw std::runtime_error(
"Python implementation exception handler - unknown error");
488 py::gil_scoped_acquire acquire;
490 auto pyresult = mPyImpl.attr(
"Disable")();
491 return pyresult.cast<std::string>();
492 }
catch(py::error_already_set &what) {
494 py::object obj = what.value();
495 if (py::hasattr(obj,
"_cpp_exception_factory")) {
497 if (py::hasattr(obj,
"args")) {
498 arguments = obj.attr(
"args");
500 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
501 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
502 ex.instance() -> throw_cpp_exception();
504 throw std::runtime_error(what.what());
507 throw std::runtime_error(
"Python implementation exception handler - unknown error");
510 py::gil_scoped_acquire acquire;
512 auto pyresult = mPyImpl.attr(
"GetState")();
513 return pyresult.cast<std::string>();
514 }
catch(py::error_already_set &what) {
516 py::object obj = what.value();
517 if (py::hasattr(obj,
"_cpp_exception_factory")) {
519 if (py::hasattr(obj,
"args")) {
520 arguments = obj.attr(
"args");
522 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
523 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
524 ex.instance() -> throw_cpp_exception();
526 throw std::runtime_error(what.what());
529 throw std::runtime_error(
"Python implementation exception handler - unknown error");
532 py::gil_scoped_acquire acquire;
534 auto pyresult = mPyImpl.attr(
"GetStatus")();
535 return pyresult.cast<std::string>();
536 }
catch(py::error_already_set &what) {
538 py::object obj = what.value();
539 if (py::hasattr(obj,
"_cpp_exception_factory")) {
541 if (py::hasattr(obj,
"args")) {
542 arguments = obj.attr(
"args");
544 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
545 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
546 ex.instance() -> throw_cpp_exception();
548 throw std::runtime_error(what.what());
551 throw std::runtime_error(
"Python implementation exception handler - unknown error");
554 py::gil_scoped_acquire acquire;
556 auto pyresult = mPyImpl.attr(
"GetVersion")();
557 return pyresult.cast<std::string>();
558 }
catch(py::error_already_set &what) {
560 py::object obj = what.value();
561 if (py::hasattr(obj,
"_cpp_exception_factory")) {
563 if (py::hasattr(obj,
"args")) {
564 arguments = obj.attr(
"args");
566 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
567 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
568 ex.instance() -> throw_cpp_exception();
570 throw std::runtime_error(what.what());
573 throw std::runtime_error(
"Python implementation exception handler - unknown error");
576 py::gil_scoped_acquire acquire;
578 auto pyresult = mPyImpl.attr(
"Config")();
579 return pyresult.cast<std::string>();
580 }
catch(py::error_already_set &what) {
582 py::object obj = what.value();
583 if (py::hasattr(obj,
"_cpp_exception_factory")) {
585 if (py::hasattr(obj,
"args")) {
586 arguments = obj.attr(
"args");
588 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
589 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
590 ex.instance() -> throw_cpp_exception();
592 throw std::runtime_error(what.what());
595 throw std::runtime_error(
"Python implementation exception handler - unknown error");
598 py::gil_scoped_acquire acquire;
600 auto pyresult = mPyImpl.attr(
"Exit")();
601 return pyresult.cast<std::string>();
602 }
catch(py::error_already_set &what) {
604 py::object obj = what.value();
605 if (py::hasattr(obj,
"_cpp_exception_factory")) {
607 if (py::hasattr(obj,
"args")) {
608 arguments = obj.attr(
"args");
610 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
611 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
612 ex.instance() -> throw_cpp_exception();
614 throw std::runtime_error(what.what());
617 throw std::runtime_error(
"Python implementation exception handler - unknown error");
619 std::string
SetLogLevel(
const std::shared_ptr<::exmalif::LogInfo>& info) {
620 py::gil_scoped_acquire acquire;
622 auto pyresult = mPyImpl.attr(
"SetLogLevel")(info);
623 return pyresult.cast<std::string>();
624 }
catch(py::error_already_set &what) {
626 py::object obj = what.value();
627 if (py::hasattr(obj,
"_cpp_exception_factory")) {
629 if (py::hasattr(obj,
"args")) {
630 arguments = obj.attr(
"args");
632 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
633 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
634 ex.instance() -> throw_cpp_exception();
636 throw std::runtime_error(what.what());
639 throw std::runtime_error(
"Python implementation exception handler - unknown error");
641 std::string
Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos) {
642 py::gil_scoped_acquire acquire;
644 auto pyresult = mPyImpl.attr(
"Preset")(pos);
645 return pyresult.cast<std::string>();
646 }
catch(py::error_already_set &what) {
648 py::object obj = what.value();
649 if (py::hasattr(obj,
"_cpp_exception_factory")) {
651 if (py::hasattr(obj,
"args")) {
652 arguments = obj.attr(
"args");
654 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
655 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
656 ex.instance() -> throw_cpp_exception();
658 throw std::runtime_error(what.what());
661 throw std::runtime_error(
"Python implementation exception handler - unknown error");
663 std::string
Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos) {
664 py::gil_scoped_acquire acquire;
666 auto pyresult = mPyImpl.attr(
"Move")(pos);
667 return pyresult.cast<std::string>();
668 }
catch(py::error_already_set &what) {
670 py::object obj = what.value();
671 if (py::hasattr(obj,
"_cpp_exception_factory")) {
673 if (py::hasattr(obj,
"args")) {
674 arguments = obj.attr(
"args");
676 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
677 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
678 ex.instance() -> throw_cpp_exception();
680 throw std::runtime_error(what.what());
683 throw std::runtime_error(
"Python implementation exception handler - unknown error");
685 std::shared_ptr<::elt::mal::rr::Ami<std::string>>
687 py::gil_scoped_acquire acquire;
689 auto pyresult = mPyImpl.attr(
"GetPresetProgress")();
690 ::elt::mal::bindings::rr::ServerAmiDelegate<std::string, StdCmds> &serverAmi =
691 pyresult.cast<::elt::mal::bindings::rr::ServerAmiDelegate<std::string, StdCmds>&>();
692 return serverAmi.getAmi();
693 }
catch(py::error_already_set &what) {
695 py::object obj = what.value();
696 if (py::hasattr(obj,
"_cpp_exception_factory")) {
698 if (py::hasattr(obj,
"args")) {
699 arguments = obj.attr(
"args");
701 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
702 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
703 ex.instance() -> throw_cpp_exception();
705 throw std::runtime_error(what.what());
708 throw std::runtime_error(
"Python implementation exception handler - unknown error");
722 ::elt::mal::future<std::string>
Stop() {
723 py::gil_scoped_acquire acquire;
725 auto pyresult = mPyImpl.attr(
"Stop")();
726 ::elt::mal::future<std::string> result =
727 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
729 }
catch(py::error_already_set &what) {
731 py::object obj = what.value();
732 if (py::hasattr(obj,
"_cpp_exception_factory")) {
734 if (py::hasattr(obj,
"args")) {
735 arguments = obj.attr(
"args");
737 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
738 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
739 ex.instance() -> throw_cpp_exception();
741 throw std::runtime_error(what.what());
744 throw std::runtime_error(
"Python implementation exception handler - unknown error");
746 ::elt::mal::future<std::string>
Init() {
747 py::gil_scoped_acquire acquire;
749 auto pyresult = mPyImpl.attr(
"Init")();
750 ::elt::mal::future<std::string> result =
751 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
753 }
catch(py::error_already_set &what) {
755 py::object obj = what.value();
756 if (py::hasattr(obj,
"_cpp_exception_factory")) {
758 if (py::hasattr(obj,
"args")) {
759 arguments = obj.attr(
"args");
761 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
762 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
763 ex.instance() -> throw_cpp_exception();
765 throw std::runtime_error(what.what());
768 throw std::runtime_error(
"Python implementation exception handler - unknown error");
770 ::elt::mal::future<std::string>
Reset() {
771 py::gil_scoped_acquire acquire;
773 auto pyresult = mPyImpl.attr(
"Reset")();
774 ::elt::mal::future<std::string> result =
775 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
777 }
catch(py::error_already_set &what) {
779 py::object obj = what.value();
780 if (py::hasattr(obj,
"_cpp_exception_factory")) {
782 if (py::hasattr(obj,
"args")) {
783 arguments = obj.attr(
"args");
785 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
786 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
787 ex.instance() -> throw_cpp_exception();
789 throw std::runtime_error(what.what());
792 throw std::runtime_error(
"Python implementation exception handler - unknown error");
794 ::elt::mal::future<std::string>
Enable() {
795 py::gil_scoped_acquire acquire;
797 auto pyresult = mPyImpl.attr(
"Enable")();
798 ::elt::mal::future<std::string> result =
799 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
801 }
catch(py::error_already_set &what) {
803 py::object obj = what.value();
804 if (py::hasattr(obj,
"_cpp_exception_factory")) {
806 if (py::hasattr(obj,
"args")) {
807 arguments = obj.attr(
"args");
809 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
810 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
811 ex.instance() -> throw_cpp_exception();
813 throw std::runtime_error(what.what());
816 throw std::runtime_error(
"Python implementation exception handler - unknown error");
819 py::gil_scoped_acquire acquire;
821 auto pyresult = mPyImpl.attr(
"Disable")();
822 ::elt::mal::future<std::string> result =
823 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
825 }
catch(py::error_already_set &what) {
827 py::object obj = what.value();
828 if (py::hasattr(obj,
"_cpp_exception_factory")) {
830 if (py::hasattr(obj,
"args")) {
831 arguments = obj.attr(
"args");
833 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
834 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
835 ex.instance() -> throw_cpp_exception();
837 throw std::runtime_error(what.what());
840 throw std::runtime_error(
"Python implementation exception handler - unknown error");
843 py::gil_scoped_acquire acquire;
845 auto pyresult = mPyImpl.attr(
"GetState")();
846 ::elt::mal::future<std::string> result =
847 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
849 }
catch(py::error_already_set &what) {
851 py::object obj = what.value();
852 if (py::hasattr(obj,
"_cpp_exception_factory")) {
854 if (py::hasattr(obj,
"args")) {
855 arguments = obj.attr(
"args");
857 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
858 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
859 ex.instance() -> throw_cpp_exception();
861 throw std::runtime_error(what.what());
864 throw std::runtime_error(
"Python implementation exception handler - unknown error");
867 py::gil_scoped_acquire acquire;
869 auto pyresult = mPyImpl.attr(
"GetStatus")();
870 ::elt::mal::future<std::string> result =
871 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
873 }
catch(py::error_already_set &what) {
875 py::object obj = what.value();
876 if (py::hasattr(obj,
"_cpp_exception_factory")) {
878 if (py::hasattr(obj,
"args")) {
879 arguments = obj.attr(
"args");
881 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
882 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
883 ex.instance() -> throw_cpp_exception();
885 throw std::runtime_error(what.what());
888 throw std::runtime_error(
"Python implementation exception handler - unknown error");
891 py::gil_scoped_acquire acquire;
893 auto pyresult = mPyImpl.attr(
"GetVersion")();
894 ::elt::mal::future<std::string> result =
895 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
897 }
catch(py::error_already_set &what) {
899 py::object obj = what.value();
900 if (py::hasattr(obj,
"_cpp_exception_factory")) {
902 if (py::hasattr(obj,
"args")) {
903 arguments = obj.attr(
"args");
905 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
906 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
907 ex.instance() -> throw_cpp_exception();
909 throw std::runtime_error(what.what());
912 throw std::runtime_error(
"Python implementation exception handler - unknown error");
914 ::elt::mal::future<std::string>
Config() {
915 py::gil_scoped_acquire acquire;
917 auto pyresult = mPyImpl.attr(
"Config")();
918 ::elt::mal::future<std::string> result =
919 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
921 }
catch(py::error_already_set &what) {
923 py::object obj = what.value();
924 if (py::hasattr(obj,
"_cpp_exception_factory")) {
926 if (py::hasattr(obj,
"args")) {
927 arguments = obj.attr(
"args");
929 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
930 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
931 ex.instance() -> throw_cpp_exception();
933 throw std::runtime_error(what.what());
936 throw std::runtime_error(
"Python implementation exception handler - unknown error");
938 ::elt::mal::future<std::string>
Exit() {
939 py::gil_scoped_acquire acquire;
941 auto pyresult = mPyImpl.attr(
"Exit")();
942 ::elt::mal::future<std::string> result =
943 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
945 }
catch(py::error_already_set &what) {
947 py::object obj = what.value();
948 if (py::hasattr(obj,
"_cpp_exception_factory")) {
950 if (py::hasattr(obj,
"args")) {
951 arguments = obj.attr(
"args");
953 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
954 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
955 ex.instance() -> throw_cpp_exception();
957 throw std::runtime_error(what.what());
960 throw std::runtime_error(
"Python implementation exception handler - unknown error");
962 ::elt::mal::future<std::string>
SetLogLevel(
const std::shared_ptr<::exmalif::LogInfo>& info) {
963 py::gil_scoped_acquire acquire;
965 auto pyresult = mPyImpl.attr(
"SetLogLevel")(info);
966 ::elt::mal::future<std::string> result =
967 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
969 }
catch(py::error_already_set &what) {
971 py::object obj = what.value();
972 if (py::hasattr(obj,
"_cpp_exception_factory")) {
974 if (py::hasattr(obj,
"args")) {
975 arguments = obj.attr(
"args");
977 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
978 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
979 ex.instance() -> throw_cpp_exception();
981 throw std::runtime_error(what.what());
984 throw std::runtime_error(
"Python implementation exception handler - unknown error");
986 ::elt::mal::future<std::string>
Preset(
const std::shared_ptr<::exmalif::TelPosition>& pos) {
987 py::gil_scoped_acquire acquire;
989 auto pyresult = mPyImpl.attr(
"Preset")(pos);
990 ::elt::mal::future<std::string> result =
991 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
993 }
catch(py::error_already_set &what) {
995 py::object obj = what.value();
996 if (py::hasattr(obj,
"_cpp_exception_factory")) {
998 if (py::hasattr(obj,
"args")) {
999 arguments = obj.attr(
"args");
1001 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
1002 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
1003 ex.instance() -> throw_cpp_exception();
1005 throw std::runtime_error(what.what());
1008 throw std::runtime_error(
"Python implementation exception handler - unknown error");
1010 ::elt::mal::future<std::string>
Move(
const std::shared_ptr<::exmalif::AxesPosition>& pos) {
1011 py::gil_scoped_acquire acquire;
1013 auto pyresult = mPyImpl.attr(
"Move")(pos);
1014 ::elt::mal::future<std::string> result =
1015 ::elt::mal::bindings::pyFutToMal<std::string>(pyresult);
1017 }
catch(py::error_already_set &what) {
1019 py::object obj = what.value();
1020 if (py::hasattr(obj,
"_cpp_exception_factory")) {
1022 if (py::hasattr(obj,
"args")) {
1023 arguments = obj.attr(
"args");
1025 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
1026 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
1027 ex.instance() -> throw_cpp_exception();
1029 throw std::runtime_error(what.what());
1032 throw std::runtime_error(
"Python implementation exception handler - unknown error");
1034 std::shared_ptr<::elt::mal::rr::Ami<std::string>>
1036 py::gil_scoped_acquire acquire;
1038 auto pyresult = mPyImpl.attr(
"GetPresetProgress")();
1039 ::elt::mal::bindings::rr::ServerAmiDelegate<std::string, StdCmds> &serverAmi =
1040 pyresult.cast<::elt::mal::bindings::rr::ServerAmiDelegate<std::string, StdCmds>&>();
1041 return serverAmi.getAmi();
1042 }
catch(py::error_already_set &what) {
1044 py::object obj = what.value();
1045 if (py::hasattr(obj,
"_cpp_exception_factory")) {
1047 if (py::hasattr(obj,
"args")) {
1048 arguments = obj.attr(
"args");
1050 ::elt::mal::bindings::MalPythonExceptionObjectPtr ex =
1051 py::cast<::elt::mal::bindings::MalPythonExceptionObjectPtr>(obj.attr(
"_cpp_exception_factory")(arguments));
1052 ex.instance() -> throw_cpp_exception();
1054 throw std::runtime_error(what.what());
1057 throw std::runtime_error(
"Python implementation exception handler - unknown error");
1068 #ifndef ICD_GEN_ARRAY_1632905179_HPP_
1069 #define ICD_GEN_ARRAY_1632905179_HPP_
1073 #ifndef ICD_GEN_ARRAY_1286306241_HPP_
1074 #define ICD_GEN_ARRAY_1286306241_HPP_
1078 #ifndef ICD_GEN_ARRAY_1574765012_HPP_
1079 #define ICD_GEN_ARRAY_1574765012_HPP_
1086 #pragma GCC visibility pop
1087 #pragma GCC diagnostic pop