generate_macros.py
Go to the documentation of this file.
1 #!/usr/bin/python
2 # Software License Agreement (BSD License)
3 #
4 # Copyright (c) 2008, Willow Garage, Inc.
5 # All rights reserved.
6 #
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
9 # are met:
10 #
11 # * Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above
14 # copyright notice, this list of conditions and the following
15 # disclaimer in the documentation and/or other materials provided
16 # with the distribution.
17 # * Neither the name of Willow Garage, Inc. nor the names of its
18 # contributors may be used to endorse or promote products derived
19 # from this software without specific prior written permission.
20 #
21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 # POSSIBILITY OF SUCH DAMAGE.
33 
34 import os
35 import sys
36 
37 def add_macro(f, caps_name, enum_name):
38  f.write('#if (ROSCONSOLE_MIN_SEVERITY > ROSCONSOLE_SEVERITY_%s)\n' %(caps_name))
39  f.write('#define ROS_%s(...)\n' %(caps_name))
40  f.write('#define ROS_%s_STREAM(args)\n' %(caps_name))
41  f.write('#define ROS_%s_NAMED(name, ...)\n' %(caps_name))
42  f.write('#define ROS_%s_STREAM_NAMED(name, args)\n' %(caps_name))
43  f.write('#define ROS_%s_COND(cond, ...)\n' %(caps_name))
44  f.write('#define ROS_%s_STREAM_COND(cond, args)\n' %(caps_name))
45  f.write('#define ROS_%s_COND_NAMED(cond, name, ...)\n' %(caps_name))
46  f.write('#define ROS_%s_STREAM_COND_NAMED(cond, name, args)\n' %(caps_name))
47 
48  f.write('#define ROS_%s_ONCE(...)\n' %(caps_name))
49  f.write('#define ROS_%s_STREAM_ONCE(args)\n' %(caps_name))
50  f.write('#define ROS_%s_ONCE_NAMED(name, ...)\n' %(caps_name))
51  f.write('#define ROS_%s_STREAM_ONCE_NAMED(name, args)\n' %(caps_name))
52  f.write('#define ROS_%s_THROTTLE(period, ...)\n' %(caps_name))
53  f.write('#define ROS_%s_STREAM_THROTTLE(period, args)\n' %(caps_name))
54  f.write('#define ROS_%s_THROTTLE_NAMED(period, name, ...)\n' %(caps_name))
55  f.write('#define ROS_%s_STREAM_THROTTLE_NAMED(period, name, args)\n' %(caps_name))
56  f.write('#define ROS_%s_DELAYED_THROTTLE(period, ...)\n' %(caps_name))
57  f.write('#define ROS_%s_STREAM_DELAYED_THROTTLE(period, args)\n' %(caps_name))
58  f.write('#define ROS_%s_DELAYED_THROTTLE_NAMED(period, name, ...)\n' %(caps_name))
59  f.write('#define ROS_%s_STREAM_DELAYED_THROTTLE_NAMED(period, name, args)\n' %(caps_name))
60 
61  f.write('#define ROS_%s_FILTER(filter, ...)\n' %(caps_name))
62  f.write('#define ROS_%s_STREAM_FILTER(filter, args)\n' %(caps_name))
63  f.write('#define ROS_%s_FILTER_NAMED(filter, name, ...)\n' %(caps_name))
64  f.write('#define ROS_%s_STREAM_FILTER_NAMED(filter, name, args)\n' %(caps_name))
65  f.write('#else\n')
66  f.write('#define ROS_%s(...) ROS_LOG(::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
67  f.write('#define ROS_%s_STREAM(args) ROS_LOG_STREAM(::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
68  f.write('#define ROS_%s_NAMED(name, ...) ROS_LOG(::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
69  f.write('#define ROS_%s_STREAM_NAMED(name, args) ROS_LOG_STREAM(::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
70  f.write('#define ROS_%s_COND(cond, ...) ROS_LOG_COND(cond, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
71  f.write('#define ROS_%s_STREAM_COND(cond, args) ROS_LOG_STREAM_COND(cond, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
72  f.write('#define ROS_%s_COND_NAMED(cond, name, ...) ROS_LOG_COND(cond, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
73  f.write('#define ROS_%s_STREAM_COND_NAMED(cond, name, args) ROS_LOG_STREAM_COND(cond, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
74 
75  f.write('#define ROS_%s_ONCE(...) ROS_LOG_ONCE(::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
76  f.write('#define ROS_%s_STREAM_ONCE(args) ROS_LOG_STREAM_ONCE(::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
77  f.write('#define ROS_%s_ONCE_NAMED(name, ...) ROS_LOG_ONCE(::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
78  f.write('#define ROS_%s_STREAM_ONCE_NAMED(name, args) ROS_LOG_STREAM_ONCE(::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
79 
80  f.write('#define ROS_%s_THROTTLE(period, ...) ROS_LOG_THROTTLE(period, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
81  f.write('#define ROS_%s_STREAM_THROTTLE(period, args) ROS_LOG_STREAM_THROTTLE(period, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
82  f.write('#define ROS_%s_THROTTLE_NAMED(period, name, ...) ROS_LOG_THROTTLE(period, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
83  f.write('#define ROS_%s_STREAM_THROTTLE_NAMED(period, name, args) ROS_LOG_STREAM_THROTTLE(period, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
84 
85  f.write('#define ROS_%s_DELAYED_THROTTLE(period, ...) ROS_LOG_DELAYED_THROTTLE(period, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
86  f.write('#define ROS_%s_STREAM_DELAYED_THROTTLE(period, args) ROS_LOG_STREAM_DELAYED_THROTTLE(period, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
87  f.write('#define ROS_%s_DELAYED_THROTTLE_NAMED(period, name, ...) ROS_LOG_DELAYED_THROTTLE(period, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
88  f.write('#define ROS_%s_STREAM_DELAYED_THROTTLE_NAMED(period, name, args) ROS_LOG_STREAM_DELAYED_THROTTLE(period, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
89 
90  f.write('#define ROS_%s_FILTER(filter, ...) ROS_LOG_FILTER(filter, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, __VA_ARGS__)\n' %(caps_name, enum_name))
91  f.write('#define ROS_%s_STREAM_FILTER(filter, args) ROS_LOG_STREAM_FILTER(filter, ::ros::console::levels::%s, ROSCONSOLE_DEFAULT_NAME, args)\n' %(caps_name, enum_name))
92  f.write('#define ROS_%s_FILTER_NAMED(filter, name, ...) ROS_LOG_FILTER(filter, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, __VA_ARGS__)\n' %(caps_name, enum_name))
93  f.write('#define ROS_%s_STREAM_FILTER_NAMED(filter, name, args) ROS_LOG_STREAM_FILTER(filter, ::ros::console::levels::%s, std::string(ROSCONSOLE_NAME_PREFIX) + "." + name, args)\n' %(caps_name, enum_name))
94  f.write('#endif\n\n')
95 
96 f = open('%s/../include/rosconsole/macros_generated.h' %(os.path.dirname(__file__)), 'w')
97 
98 f.write("// !!!!!!!!!!!!!!!!!!!!!!! This is a generated file, do not edit manually\n\n")
99 
100 f.write('/*\n')
101 f.write(' * Copyright (c) 2008, Willow Garage, Inc.\n')
102 f.write(' * All rights reserved.\n')
103 f.write(' *\n')
104 f.write(' * Redistribution and use in source and binary forms, with or without\n')
105 f.write(' * modification, are permitted provided that the following conditions are met:\n')
106 f.write(' *\n')
107 f.write(' * * Redistributions of source code must retain the above copyright\n')
108 f.write(' * notice, this list of conditions and the following disclaimer.\n')
109 f.write(' * * Redistributions in binary form must reproduce the above copyright\n')
110 f.write(' * notice, this list of conditions and the following disclaimer in the\n')
111 f.write(' * documentation and/or other materials provided with the distribution.\n')
112 f.write(' * * Neither the name of Willow Garage, Inc. nor the names of its\n')
113 f.write(' * contributors may be used to endorse or promote products derived from\n')
114 f.write(' * this software without specific prior written permission.\n')
115 f.write(' *\n')
116 f.write(' * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\n')
117 f.write(' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n')
118 f.write(' * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n')
119 f.write(' * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n')
120 f.write(' * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n')
121 f.write(' * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n')
122 f.write(' * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n')
123 f.write(' * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n')
124 f.write(' * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n')
125 f.write(' * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n')
126 f.write(' * POSSIBILITY OF SUCH DAMAGE.\n')
127 f.write(' */\n\n')
128 
129 add_macro(f, "DEBUG", "Debug")
130 add_macro(f, "INFO", "Info")
131 add_macro(f, "WARN", "Warn")
132 add_macro(f, "ERROR", "Error")
133 add_macro(f, "FATAL", "Fatal")
134 
135 
136 
137 
def add_macro(f, caps_name, enum_name)


rosconsole
Author(s): Josh Faust
autogenerated on Mon Feb 28 2022 23:30:41