Design of a simulator implementing MOESI cache coherence protocol. This is in C++