// TSObject.h: interface for the TSObject class.
//
/////////////////////////////////////////////////////////////////////////

#ifndef TSOBJECT_H_
#define TSOBJECT_H_

#include "TSApi.h"
#include "TSDef.h"

class TSString;

class TS_API TSObject
{
  public:

    TSObject() : fieldType( 0 ) {};

    virtual ~TSObject() {};

    virtual TSObject* NewObject() = 0;
    virtual void      Copy( TSObject * ) = 0;
    virtual TSObject* Duplicate( int type = 0 ) = 0;
    virtual TSString  StringDump( int recursive, TSString indentation ) = 0;
    virtual int       SocketString( TSString& str ) = 0;

    int     fieldType;  // For use if this is a field of the Fields table.
};

#endif

