
/*
**  This file forms part of the GOBLIN C++ Class Library.
**
**  Written by Christian Fremuth-Paeger, December 1998.
**  
**  Copying, compiling, distribution and modification
**  of this source code is permitted only in accordance
**  with the GOBLIN general licence information.
*/             


#if !defined(_EXPORT_H_)

#define _EXPORT_H_

#include <absobj.h>
#include <fstream.h>


class goblinExport
{                                        
private:

	char			currentLevel;
	char			currentPos;
	char			currentType;
    ofstream		expFile;
    goblinController& CT;

public:

	goblinExport(char *expFileName,
        goblinController &thisContext = goblinDefaultContext) throw(ERFile);
	~goblinExport() throw();

	void			StartTuple(char *header, char type) throw(ERRejected);
	void			StartTuple(unsigned long k, char type) throw(ERRejected);
	void			EndTuple() throw(ERRejected);
	void			MakeItem(TFloat item, char length) throw();
	void			MakeNoItem(char length) throw();
	char			Length(TFloat value) throw();
    
    void            WriteConfiguration(goblinDataObject *) throw();
    void            WriteConfiguration(goblinController &,TOption = 0) throw();
	
};                             


#endif
