| /** |
| * @file abi.h |
| * |
| * Contains internal ABI management class |
| * |
| * @remark Copyright 2002 OProfile authors |
| * @remark Read the file COPYING |
| * |
| * @author Graydon Hoare |
| */ |
| |
| #ifndef OPROF_ABI_H |
| #define OPROF_ABI_H |
| |
| #include <string> |
| #include <map> |
| #include <iosfwd> |
| |
| struct abi_exception : std::exception { |
| std::string const desc; |
| |
| explicit abi_exception(std::string const d); |
| |
| ~abi_exception() throw() {} |
| }; |
| |
| |
| class abi { |
| public: |
| abi(); |
| |
| int need(std::string const key) const throw (abi_exception); |
| |
| bool operator==(abi const & other) const; |
| friend std::ostream & operator<<(std::ostream & o, abi const & abi); |
| friend std::istream & operator>>(std::istream & i, abi & abi); |
| |
| private: |
| std::map<std::string, int> slots; |
| }; |
| |
| #endif // OPROF_ABI_H |