You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

snf_HeaderFinder.inline.hpp 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // snf_HeaderFinder.inline.hpp
  2. // Copyright (C) 2007 - 2009 ARM Research Labs, LLC.
  3. // See www.armresearch.com for the copyright terms.
  4. // Inline methods.
  5. inline const bool HeaderFinderPattern::operator<(const HeaderFinderPattern& R) const { // Comparator for set<> living.
  6. if(Header < R.Header) { // If the Header name is < then true!
  7. return true;
  8. } else
  9. if(Header == R.Header) { // If the Header name is == then
  10. if(Ordinal < R.Ordinal) { // check the Ordinal. If it's < then
  11. return true; // true!
  12. } else
  13. if(Ordinal == R.Ordinal) { // If the Ordinal == then
  14. if(Contains < R.Contains) { // check the Contains. If it is < then
  15. return true; // true!
  16. } else
  17. if(Context < R.Context) {
  18. return true;
  19. }
  20. }
  21. }
  22. return false; // In all other cases this is not < R
  23. }
  24. inline HeaderFinderPattern::HeaderFinderPattern(const HeaderFinderPattern& P) { // Copy constructor.
  25. Header = P.Header;
  26. Ordinal = P.Ordinal;
  27. Context = P.Context;
  28. Directive = P.Directive;
  29. Contains = P.Contains;
  30. }
  31. inline void HeaderFinderPattern::clear() { // Do this to make fresh and clean.
  32. Header.clear();
  33. Ordinal = Context = Directive = 0;
  34. Contains.clear();
  35. }
  36. inline HeaderFinderPattern&
  37. HeaderFinderPattern::operator=(const HeaderFinderPattern& R) { // Assignment operator.
  38. Header = R.Header;
  39. Ordinal = R.Ordinal;
  40. Context = R.Context;
  41. Directive = R.Directive;
  42. Contains = R.Contains;
  43. return *this;
  44. }
  45. inline const unsigned long int HeaderFinder::operator()() const { // Return the Directives.
  46. return Directives;
  47. }