#pragma once

using namespace System;
using namespace System::Runtime::InteropServices;

#include "LKFContext.h"

namespace lkfxdok {
	namespace c {

		public ref class LKFNeoPaedContext
		{

		internal:
			void *_contextPtr;
			LKFContextWithData ^_context;

		public:
			LKFNeoPaedContext(LKFContextWithData ^context);

			property unsigned int WarningLineCount {
				unsigned int get(void);
			}

			String ^GetWarningInfoLine(unsigned int nWarnIndex);
			String ^GetWarningLine(unsigned int nWarnIndex);
			unsigned int GetReasonCount(unsigned int nWarnIndex);
			String ^GetReasonLine(unsigned int nWarnIndex, unsigned int reasonIndex);

			property unsigned int ProtocolLineCount {
				unsigned int get(void);
			}
			String ^GetProtocolHeadline();
			String ^GetProtocolLine(unsigned int index);

			property unsigned int AbtCount {
				unsigned int get(void);
			}
			String ^GetSumAbtHeadline();
			String ^GetSumAbtLine(unsigned int index);

			void WriteWarningFile(String ^outputFileName, bool includeReason);
			void WriteProtokollFile(String ^outputFileName);
			void WriteAbtFile(String ^outputFileName, bool abtsum, bool tfsum, bool critsum);

			String ^GetTFSumHeadline();
			String ^GetTFSumLine(unsigned int index);

			String ^GetCritSumHeadline();
			String ^GetCritSumLine(unsigned int index);
		};
	}
}