// GuestRegister.h

#ifndef _GuestRegister_h
#define _GuestRegister_h 1

#include "bool.h"
#include "GuestInfo.h"
#include "GuestTree.h"


class GuestRegister {

public:
  // ABSTRACTLY: a set of guest
  // information records,
  // with only one record with
  // a given guest name.

GuestRegister();
  // MODIFIES: self
  // POST: self is the empty set

void Insert(const GuestInfo & g);
  // PRE: no record with g.name is in self
  // MODIFIES: self
  // POST: self is self<entry> UNION {g}

void Delete(const String & name,
	    Boolean & found);
  // MODIFIES: self
  // POST: name is not in self
  // && found --> name in self<entry>

void SearchFor(const String & name,
	       Boolean & found,
	       GuestInfo& g) const;
  // MODIFIES: found, g
  // POST: found --> g has the same
  // information as the record
  // with g.name == name in self

void InOrderPrint() const;
  // MODIFIES: cout
  // POST: a list of guest information
  // is added to cout;
  // the information is in ascending
  // order by name.

#include "GuestRegister.pri"
};
#endif
