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

#ifndef TSTRANSITION_H_
#define TSTRANSITION_H_

#pragma warning( push, 1 )
#include "DisableSTLWarnings.h"
#include <list>
#pragma warning( pop )
#include "DisableSTLUsageWarnings.h"

#include "TSApi.h"
#include "TSRecordRef.h"


// This class describes a transition.

class TS_API TSTransition : public TSRecordRef
{
  friend class TSServer;
  public:
    // Constructors/destructors/operator =
    TSTransition( TSServer& server, int nTransitionId = 0 ); // Will automatically set the table id
    TSTransition( const TSTransition& that );
    virtual ~TSTransition();
    TSTransition& operator = ( const TSTransition& that );

    // For debugging
    TSString StringDump( TSString sIndentation );

  private:
    virtual int SetTableId( int nNewTableId );

};

typedef std::list< TSTransition* > TSTransitionList;

#endif

