Эх сурвалжийг харах

test message-find-list fixed

Fabian Peter Hammerle 9 жил өмнө
parent
commit
f82e5a1c2e
4 өөрчлөгдсөн 17 нэмэгдсэн , 6 устгасан
  1. 14 4
      MessageList.cpp
  2. 1 0
      MessageList.h
  3. 1 1
      build
  4. 1 1
      tests/message-list-find.cpp

+ 14 - 4
MessageList.cpp

@@ -1,13 +1,23 @@
 #include "MessageList.h"
 
 namespace midi {
-   
-bool MessageList::contains(const Message& message) const 
+
+bool MessageList::contains(const Message& message) const
 {
     return find(message) != end();
 }
 
-MessageList::const_iterator MessageList::find(const Message& message) const 
+MessageList::iterator MessageList::find(const Message& message)
+{
+    for(iterator it = begin(); it != end(); it++) {
+        if(message == **it) {
+            return it;
+        }
+    }
+    return end();
+}
+
+MessageList::const_iterator MessageList::find(const Message& message) const
 {
     for(const_iterator it = begin(); it != end(); it++) {
         if(message == **it) {
@@ -16,7 +26,7 @@ MessageList::const_iterator MessageList::find(const Message& message) const
     }
     return end();
 }
-    
+
 void MessageList::print(std::ostream& stream) const
 {
     stream << "midi message list:\n";

+ 1 - 0
MessageList.h

@@ -12,6 +12,7 @@ class MessageList : public std::list<std::shared_ptr<Message>>
 
 public:
     bool contains(const Message& message) const;
+    iterator find(const Message& message);
     const_iterator find(const Message& message) const;
     void print(std::ostream& stream) const;
 };

+ 1 - 1
build

@@ -1,4 +1,5 @@
 #!/bin/bash
+set -e
 
 cd "$( dirname "$0" )"
 
@@ -12,4 +13,3 @@ mkdir -p bin
 cd bin
 cmake .. && make
 cd ../..
-

+ 1 - 1
tests/message-list-find.cpp

@@ -16,7 +16,7 @@ int main()
     l.print(std::cout);
 
     std::shared_ptr<Message> m = std::make_shared<NoteOffMessage>(1, 23, 43);
-    MessageList::const_iterator m_it = l.find(*m);
+    MessageList::iterator m_it = l.find(*m);
     std::cout << "erase ";
     (*m_it)->print(std::cout);
     std::cout << "\n";