AERA
submodules
AERA
usr_operators
Callbacks
usr_operators/Callbacks/callbacks.cpp
1
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
2
//_/_/
3
//_/_/ AERA
4
//_/_/ Autocatalytic Endogenous Reflective Architecture
5
//_/_/
6
//_/_/ Copyright (c) 2018-2025 Jeff Thompson
7
//_/_/ Copyright (c) 2018-2025 Kristinn R. Thorisson
8
//_/_/ Copyright (c) 2018-2025 Icelandic Institute for Intelligent Machines
9
//_/_/ Copyright (c) 2018 Thor Tomasarson
10
//_/_/ http://www.iiim.is
11
//_/_/
12
//_/_/ Copyright (c) 2010-2012 Eric Nivel
13
//_/_/ Center for Analysis and Design of Intelligent Agents
14
//_/_/ Reykjavik University, Menntavegur 1, 102 Reykjavik, Iceland
15
//_/_/ http://cadia.ru.is
16
//_/_/
17
//_/_/ Part of this software was developed by Eric Nivel
18
//_/_/ in the HUMANOBS EU research project, which included
19
//_/_/ the following parties:
20
//_/_/
21
//_/_/ Autonomous Systems Laboratory
22
//_/_/ Technical University of Madrid, Spain
23
//_/_/ http://www.aslab.org/
24
//_/_/
25
//_/_/ Communicative Machines
26
//_/_/ Edinburgh, United Kingdom
27
//_/_/ http://www.cmlabs.com/
28
//_/_/
29
//_/_/ Istituto Dalle Molle di Studi sull'Intelligenza Artificiale
30
//_/_/ University of Lugano and SUPSI, Switzerland
31
//_/_/ http://www.idsia.ch/
32
//_/_/
33
//_/_/ Institute of Cognitive Sciences and Technologies
34
//_/_/ Consiglio Nazionale delle Ricerche, Italy
35
//_/_/ http://www.istc.cnr.it/
36
//_/_/
37
//_/_/ Dipartimento di Ingegneria Informatica
38
//_/_/ University of Palermo, Italy
39
//_/_/ http://diid.unipa.it/roboticslab/
40
//_/_/
41
//_/_/
42
//_/_/ --- HUMANOBS Open-Source BSD License, with CADIA Clause v 1.0 ---
43
//_/_/
44
//_/_/ Redistribution and use in source and binary forms, with or without
45
//_/_/ modification, is permitted provided that the following conditions
46
//_/_/ are met:
47
//_/_/ - Redistributions of source code must retain the above copyright
48
//_/_/ and collaboration notice, this list of conditions and the
49
//_/_/ following disclaimer.
50
//_/_/ - Redistributions in binary form must reproduce the above copyright
51
//_/_/ notice, this list of conditions and the following disclaimer
52
//_/_/ in the documentation and/or other materials provided with
53
//_/_/ the distribution.
54
//_/_/
55
//_/_/ - Neither the name of its copyright holders nor the names of its
56
//_/_/ contributors may be used to endorse or promote products
57
//_/_/ derived from this software without specific prior
58
//_/_/ written permission.
59
//_/_/
60
//_/_/ - CADIA Clause: The license granted in and to the software
61
//_/_/ under this agreement is a limited-use license.
62
//_/_/ The software may not be used in furtherance of:
63
//_/_/ (i) intentionally causing bodily injury or severe emotional
64
//_/_/ distress to any person;
65
//_/_/ (ii) invading the personal privacy or violating the human
66
//_/_/ rights of any person; or
67
//_/_/ (iii) committing or preparing for any act of war.
68
//_/_/
69
//_/_/ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
70
//_/_/ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
71
//_/_/ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
72
//_/_/ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
73
//_/_/ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
74
//_/_/ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
75
//_/_/ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
76
//_/_/ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
77
//_/_/ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
78
//_/_/ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
79
//_/_/ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
80
//_/_/ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
81
//_/_/ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
82
//_/_/ OF SUCH DAMAGE.
83
//_/_/
84
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
85
86
#include <sstream>
87
#include "callbacks.h"
88
89
#include "../r_exec/mem.h"
90
#include "../r_comp/decompiler.h"
//debug
91
92
using namespace
std;
93
using namespace
std::chrono;
94
using namespace
r_code;
95
96
namespace
usr_operators {
97
98
bool
print(microseconds relative_time,
bool
suspended,
const
char
*msg, uint8 object_count,
Code
**objects) {
// return true to resume the executive (applies when called from a suspend call, i.e. suspended==true).
99
100
ostringstream out;
101
out << Utils::ToString_s_ms_us(Timestamp(relative_time), Timestamp(seconds(0))) <<
": "
<< msg << std::endl;
102
for
(uint8 i = 0; i < object_count; ++i)
103
objects[i]->trace(out);
104
105
// Assume that printing a single string is more-or-less atomic.
106
std::cout << out.str();
107
return
true
;
108
}
109
110
}
r_code::Code
Definition:
r_code/object.h:224
Generated by
1.8.18