#ifndef DiagService_H
#define DiagService_H

#include <string>
#include "TypeDefs.h"
#include "MySerializable.h"

#include "ComChannel.h"
namespace ProtoGenWrapper
{
	class DiagService : public MySerializable
	{
	public:
		DiagService();
		DiagService(int64 handle, const std::string& name, const std::string& longName, const ComChannel& comChannel);
		virtual ~DiagService() = default;

		int64 GetHandle() const;
		void SetHandle(int64 handle);
		std::string GetName() const;
		void SetName(const std::string& name);
		std::string GetLongName() const;
		void SetLongName(const std::string& longName);
		const ComChannel& GetComChannel() const;
		void SetComChannel(const ComChannel& comChannel);

		void Serialize(std::string* output) const override;
		void Deserialize(const std::string& data) override;

	protected:
		int64 _handle;
		std::string _name;
		std::string _longName;
		ComChannel _comChannel;
	};
}
#endif // DiagService_H