#ifndef CCATALOG
#define CCATALOG

#include <iostream>
#include <map>
#include <vector>
#include "Course.h"
#include "File.h"

class CourseCatalog {
  friend ostream& operator << (ostream& out, CourseCatalog& tc);
 public:
  CourseCatalog();
  ~CourseCatalog();

  bool contains(string cid);

  Course& find(string cid);

  vector<Course> search(string key);

  bool insert(Course t);
  bool remove(Course t);
  bool remove(string cid);
  bool replace(string cid, Course t);

 private:
  File coursedb;
  map<string,Course> pairs;
};

#endif
