StringUtilities.h
Go to the documentation of this file.
00001 
00006 #ifndef STRINGUTILITIES_H_
00007 #define STRINGUTILITIES_H_
00008 
00009 #include <string>
00010 #include <vector>
00011 #include <boost/regex.hpp>
00012 #include <boost/algorithm/string.hpp> // For string splitting
00013 #include "nasa_common_logging/Logger.h"
00014 
00015 namespace StringUtilities
00016 {
00017     bool isFullyQualifiedRobonetNode(const std::string& name);
00018     bool isFullyQualifiedRobonetElement(const std::string& name);
00019 
00020     std::string getRobonetChannel(const std::string& name);
00021     std::string getRobonetNode(const std::string& name);
00022     std::string getFullyQualifiedRobonetNode(const std::string& name);
00023     std::string getRobonetElement(const std::string& name);
00024 
00025     std::string makeFullyQualifiedRobonetNode(const std::string& channel, const std::string& node);
00026     std::string makeFullyQualifiedRobonetElement(const std::string& fqNode, const std::string& element);
00027     std::string makeFullyQualifiedRobonetElement(const std::string& channel, const std::string& node, const std::string& element);
00028 
00029     bool isFullyQualifiedRoboDynChain(const std::string& name);
00030     bool isFullyQualifiedRoboDynJoint(const std::string& name);
00031     bool isFullyQualifiedRoboDynJointWithGroup(const std::string& name);
00032 
00033     std::string getRoboDynChain(const std::string& name);
00034     std::string getFullyQualifiedRoboDynChain(const std::string& name);
00035     std::string getRoboDynJoint(const std::string& name);
00036     std::string getRoboDynJointGroup(const std::string& name);
00037     std::string getRoboDynJointWithGroup(const std::string& name);
00038     std::string getRoboDynEverythingButJoint(const std::string& name);
00039 
00040     std::string makeFullyQualifiedRoboDynChain(const std::string& chain);
00041     std::string makeFullyQualifiedRoboDynJoint(const std::string& chain, const std::string& joint);
00042     std::string makeFullyQualifiedRoboDynJointGroup(const std::string& chain, const std::string& group);
00043     std::string makeFullyQualifiedRoboDynJointWithGroup(const std::string& chain, const std::string& group, const std::string& joint);
00044     std::string makeFullyQualifiedRoboDynElement(const std::string& fqJoint, const std::string& element);
00045 
00046     bool isItemWithNumber(const std::string& name);
00047 
00048     std::string getItem(const std::string& name);
00049     std::string getNumber(const std::string& name);
00050 
00051     const std::string TOKEN_DELIMITER = "/";
00052     const std::string ROBODYN_PREFIX = "r2";
00053     const boost::regex VALID_ROBONET_NODE(TOKEN_DELIMITER + "([[:word:]]+)" + TOKEN_DELIMITER + "([[:word:]]+)");
00054     const boost::regex VALID_ROBONET_ELEMENT(TOKEN_DELIMITER + "([[:word:]]+)" + TOKEN_DELIMITER + "([[:word:]]+)" + TOKEN_DELIMITER + "([[:word:]\\.]+)");
00055     const boost::regex VALID_ROBODYN_CHAIN(ROBODYN_PREFIX + TOKEN_DELIMITER + "([[:word:]]+)");
00056     const boost::regex VALID_ROBODYN_JOINT(ROBODYN_PREFIX + TOKEN_DELIMITER + "([[:word:]]+)" + TOKEN_DELIMITER + "([[:word:]]+)");
00057     const boost::regex VALID_ROBODYN_JOINT_WITH_GROUP(ROBODYN_PREFIX + TOKEN_DELIMITER + "([[:word:]]+)" + TOKEN_DELIMITER + "([[:word:]" + TOKEN_DELIMITER + "]+)" + TOKEN_DELIMITER + "([[:word:]]+)");
00058     const boost::regex ITEM_WITH_NUMBER("([[:word:]" + TOKEN_DELIMITER + "]+)([[:digit:]]+)");
00059 };
00060 
00061 #endif /* STRINGUTILITIES_H_ */


robot_instance
Author(s):
autogenerated on Sat Jun 8 2019 20:43:12