Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROSLIB_PACKAGE_H
00029 #define ROSLIB_PACKAGE_H
00030
00031 #include <string>
00032 #include <vector>
00033 #include <map>
00034
00035 #if defined(__GNUC__)
00036 # define ROS_DEPRECATED __attribute__((deprecated))
00037 # define ROS_FORCE_INLINE __attribute__((always_inline))
00038 #elif defined(MSVC)
00039 # define ROS_DEPRECATED
00040 # define ROS_FORCE_INLINE __forceinline
00041 #else
00042 # define ROS_DEPRECATED
00043 # define ROS_FORCE_INLINE inline
00044 #endif
00045
00046
00047
00048
00049
00050
00051 #if defined(_MSC_VER)
00052 # define ROS_HELPER_IMPORT __declspec(dllimport)
00053 # define ROS_HELPER_EXPORT __declspec(dllexport)
00054 #elif __GNUC__ >= 4
00055 # define ROS_HELPER_IMPORT __attribute__ ((visibility("default")))
00056 # define ROS_HELPER_EXPORT __attribute__ ((visibility("default")))
00057 #else
00058 # define ROS_HELPER_IMPORT
00059 # define ROS_HELPER_EXPORT
00060 #endif
00061
00062
00063 #ifdef _MSC_VER
00064 # pragma warning(disable: 4251)
00065 # pragma warning(disable: 4275)
00066 #endif
00067
00068 #ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries
00069 # ifdef roslib_EXPORTS // we are building a shared lib/dll
00070 # define ROSLIB_DECL ROS_HELPER_EXPORT
00071 # else // we are using shared lib/dll
00072 # define ROSLIB_DECL ROS_HELPER_IMPORT
00073 # endif
00074 #else // ros is being built around static libraries
00075 # define ROSLIB_DECL
00076 #endif
00077
00078 namespace ros
00079 {
00080 namespace package
00081 {
00082
00083 typedef std::vector<std::string> V_string;
00084 typedef std::map<std::string, std::string> M_string;
00085
00089 ROSLIB_DECL std::string command(const std::string& cmd);
00090
00094 ROSLIB_DECL void command(const std::string& cmd, V_string& output);
00098 ROSLIB_DECL std::string getPath(const std::string& package_name);
00102 ROSLIB_DECL bool getAll(V_string& packages);
00103
00108 ROSLIB_DECL void getPlugins(const std::string& package, const std::string& attribute, V_string& plugins, bool force_recrawl=false);
00109
00114 ROSLIB_DECL void getPlugins(const std::string& package, const std::string& attribute, M_string& plugins, bool force_recrawl=false);
00115
00116 }
00117 }
00118
00119 #endif