! \ingroup mediumlevelil */
| 394 | \ingroup mediumlevelil |
| 395 | */ |
| 396 | class MediumLevelILInstructionList |
| 397 | { |
| 398 | struct ListIterator |
| 399 | { |
| 400 | size_t instructionIndex; |
| 401 | MediumLevelILIntegerList::const_iterator pos; |
| 402 | bool operator==(const ListIterator& a) const { return pos == a.pos; } |
| 403 | bool operator!=(const ListIterator& a) const { return pos != a.pos; } |
| 404 | bool operator<(const ListIterator& a) const { return pos < a.pos; } |
| 405 | ListIterator& operator++() |
| 406 | { |
| 407 | ++pos; |
| 408 | return *this; |
| 409 | } |
| 410 | const MediumLevelILInstruction operator*(); |
| 411 | }; |
| 412 | |
| 413 | MediumLevelILIntegerList m_list; |
| 414 | size_t m_instructionIndex; |
| 415 | |
| 416 | public: |
| 417 | typedef ListIterator const_iterator; |
| 418 | |
| 419 | MediumLevelILInstructionList(MediumLevelILFunction* func, const BNMediumLevelILInstruction& instr, size_t count, |
| 420 | size_t instructionIndex); |
| 421 | |
| 422 | const_iterator begin() const; |
| 423 | const_iterator end() const; |
| 424 | size_t size() const; |
| 425 | const MediumLevelILInstruction operator[](size_t i) const; |
| 426 | |
| 427 | operator _STD_VECTOR<MediumLevelILInstruction>() const; |
| 428 | }; |
| 429 | |
| 430 | /*! |
| 431 | \ingroup mediumlevelil |
no outgoing calls
no test coverage detected