abi.h
Go to the documentation of this file.00001
00012 #ifndef OPROF_ABI_H
00013 #define OPROF_ABI_H
00014
00015 #include <string>
00016 #include <map>
00017 #include <iosfwd>
00018
00019 struct abi_exception : std::exception {
00020 std::string const desc;
00021
00022 explicit abi_exception(std::string const d);
00023
00024 ~abi_exception() throw() {}
00025 };
00026
00027
00028 class abi {
00029 public:
00030 abi();
00031
00032 int need(std::string const key) const throw (abi_exception);
00033
00034 bool operator==(abi const & other) const;
00035 friend std::ostream & operator<<(std::ostream & o, abi const & abi);
00036 friend std::istream & operator>>(std::istream & i, abi & abi);
00037
00038 private:
00039 std::map<std::string, int> slots;
00040 };
00041
00042 #endif // OPROF_ABI_H