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 <utility>
00033 #include <vector>
00034 #include <map>
00035
00036 #if defined(__GNUC__)
00037 # define ROS_DEPRECATED __attribute__((deprecated))
00038 # define ROS_FORCE_INLINE __attribute__((always_inline))
00039 #elif defined(MSVC)
00040 # define ROS_DEPRECATED
00041 # define ROS_FORCE_INLINE __forceinline
00042 #else
00043 # define ROS_DEPRECATED
00044 # define ROS_FORCE_INLINE inline
00045 #endif
00046
00047
00048
00049
00050
00051
00052 #if defined(_MSC_VER)
00053 # define ROS_HELPER_IMPORT __declspec(dllimport)
00054 # define ROS_HELPER_EXPORT __declspec(dllexport)
00055 #elif __GNUC__ >= 4
00056 # define ROS_HELPER_IMPORT __attribute__ ((visibility("default")))
00057 # define ROS_HELPER_EXPORT __attribute__ ((visibility("default")))
00058 #else
00059 # define ROS_HELPER_IMPORT
00060 # define ROS_HELPER_EXPORT
00061 #endif
00062
00063
00064 #ifdef _MSC_VER
00065 # pragma warning(disable: 4251)
00066 # pragma warning(disable: 4275)
00067 #endif
00068
00069 #ifdef ROS_BUILD_SHARED_LIBS // ros is being built around shared libraries
00070 # ifdef roslib_EXPORTS // we are building a shared lib/dll
00071 # define ROSLIB_DECL ROS_HELPER_EXPORT
00072 # else // we are using shared lib/dll
00073 # define ROSLIB_DECL ROS_HELPER_IMPORT
00074 # endif
00075 #else // ros is being built around static libraries
00076 # define ROSLIB_DECL
00077 #endif
00078
00079 namespace ros
00080 {
00081 namespace package
00082 {
00083
00084 typedef std::vector<std::string> V_string;
00085 typedef std::map<std::string, std::string> M_string;
00086
00090 ROSLIB_DECL std::string command(const std::string& cmd);
00091
00095 ROSLIB_DECL void command(const std::string& cmd, V_string& output);
00099 ROSLIB_DECL std::string getPath(const std::string& package_name);
00103 ROSLIB_DECL bool getAll(V_string& packages);
00104
00109 ROSLIB_DECL void getPlugins(const std::string& package, const std::string& attribute, V_string& plugins, bool force_recrawl=false);
00110
00132 ROSLIB_DECL void getPlugins(
00133 const std::string& name,
00134 const std::string& attribute,
00135 std::vector<std::pair<std::string, std::string> >& exports,
00136 bool force_recrawl=false
00137 );
00138
00147 ROSLIB_DECL void getPlugins(const std::string& package, const std::string& attribute, M_string& plugins, bool force_recrawl=false);
00148
00149 }
00150 }
00151
00152 #endif