/** \file
 *
 *  Simple Interface that contains getFilename() function.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 *
 */

#ifndef HASFILENAME_H_
#define HASFILENAME_H_

#include "utils/Str.h"

/**
 *  Simple Interface that contains getFilename() function.
 *
 *  \ingroup logging
 */
class HasFilename
{
public:

    virtual const Str& getFilename() = 0;

    virtual ~HasFilename() {}

protected:
    // Protected constructor for abstract base class
    HasFilename() {}

private:
    // Note that the copy constructor below is private and not given a body.
    // Any attempt to call it will return a compiler error.
    HasFilename( const HasFilename& old ); // disallow copy constructor


};

#endif /*HASFILENAME_H_*/
