inter.inline.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef AFUN_INTER_INLINE_H
  2. #define AFUN_INTER_INLINE_H
  3. #include "inter.h"
  4. namespace aFuncore {
  5. inline Environment &Inter::getEnvironment() {
  6. return env;
  7. }
  8. inline void Inter::pushActivation(Activation *new_activation) {
  9. activation = new_activation;
  10. }
  11. inline Inter::InterStatus Inter::getStatus() const {
  12. return status;
  13. }
  14. inline bool Inter::isInterStop() const {
  15. return (status == inter_exit || status == inter_stop);
  16. }
  17. inline bool Inter::isInterExit() const {
  18. return (status == inter_exit);
  19. }
  20. inline ProtectVarSpace *Inter::getProtectVarSpace() const {
  21. return env.protect;
  22. }
  23. inline VarSpace *Inter::getGlobalVarSpace() const {
  24. return env.global;
  25. }
  26. inline VarList *Inter::getGlobalVarlist() const {
  27. return env.global_varlist;
  28. }
  29. inline Activation *Inter::getActivation() const {
  30. return activation;
  31. }
  32. inline EnvVarSpace &Inter::getEnvVarSpace() {
  33. return env.envvar;
  34. }
  35. inline InterOutMessage &Inter::getOutMessageStream() {
  36. return out;
  37. }
  38. inline InterInMessage &Inter::getInMessageStream() {
  39. return in;
  40. }
  41. inline size_t Environment::operator++(){
  42. std::unique_lock<std::mutex> mutex{lock};
  43. return ++reference;
  44. }
  45. inline size_t Environment::operator--(){
  46. std::unique_lock<std::mutex> mutex{lock};
  47. return --reference;
  48. }
  49. inline size_t Environment::operator++(int){
  50. std::unique_lock<std::mutex> mutex{lock};
  51. return reference++;
  52. }
  53. inline size_t Environment::operator--(int){
  54. std::unique_lock<std::mutex> mutex{lock};
  55. return reference--;
  56. }
  57. inline Inter::InterStatus Inter::setInterStop() {
  58. InterStatus ret = status;
  59. if (status != inter_exit)
  60. status = inter_stop;
  61. return ret;
  62. }
  63. inline Inter::InterStatus Inter::setInterExit() {
  64. InterStatus ret = status;
  65. status = inter_exit;
  66. return ret;
  67. }
  68. }
  69. #endif //AFUN_INTER_INLINE_H