/*
 *    SCCS ID: %Z%%M% %I% %E% SST 
 *
 *    Copyright (c) 1992-1993 Mark Soloway.  All rights reserved.
 *    See SST_LEGAL_NOTICE file for terms of the license.
 */

#ifndef _TT_FILE_H
#define _TT_FILE_H

#include <desktop/tt_c.h>

#include "TTGeneric.h"
#include "TTGenericArrayTemplate.h"

class TTObjectSpec;

DECLARE_TT_GENERIC_ARRAY(TTObjectSpec);
   
class TTFile : public TTGeneric {
public:
  TTFile (const char *new_file, Tt_status&);
  TTFile (const TTFile&);
  TTFile &operator= (const TTFile&);
  ~TTFile ();

  char              *getFile (Tt_status&) const;
  TTObjectSpecArray *getObjectSpecs (Tt_status&) const;

  Tt_status destroy ();
  Tt_status move (const char *new_file);
  Tt_status move (const TTFile&);
  Tt_status copy (const char *new_file);
  Tt_status copy (const TTFile&);

private:
  char *file;

  void  setTTFileDefaults ();
  void  copyObject (const TTFile&);
  void  destroyObject ();

#ifdef __GNUC__
public:
#endif
  static Tt_filter_action queryFilter (char *, void *, void *);
};

#endif
