#ifndef CARDSELECTORSINGLETON_H
#define CARDSELECTORSINGLETON_H

#include "CardSelector.h"

class DuelLayers;

namespace CardSelectorSingleton
{
    /*
     ** CardSelector is essentially a singleton in its usage
     ** It's not enforced, but it needs to eventually migrate to the real thing
     ** For now, this function will fake it out - it's up to the client caller to make sure
     ** that this gets destroyed via a Terminate call (this is currently handled in DualLayers's destructor)
     */
    CardSelectorBase* Instance();

    /*
     ** Create the singleton pointer. Instance() isn't valid until this is called.
     */
    CardSelectorBase* Create(GameObserver* observer, DuelLayers* inDuelLayers);

    /*
     ** Teardown the singleton pointer instance.
     */
    void Terminate();
}

#endif //CARDSELECTORSINGLETON_H
