// IDistributionClientMessage.hh
//
// Copyright (C) 2002, 2003, 2004, 2005, 2006 Rob Caelers <robc@krandor.org>
// All rights reserved.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

#ifndef IDISTRIBUTIONCLIENTMESSAGE_HH
#define IDISTRIBUTIONCLIENTMESSAGE_HH

class PacketBuffer;

enum DistributionClientMessageID
{
  DCM_TIMERS = 0x0010,
  DCM_MONITOR = 0x0011,
  DCM_IDLELOG = 0x0012,
  DCM_SCRIPT = 0x0013,
  DCM_CONFIG = 0x0014,
  DCM_BREAKS = 0x0020,
  DCM_STATS = 0x0030,
  DCM_BREAKCONTROL = 0x0040,
};

enum DistributionClientMessageType
{
  DCMT_PASSIVE = 0x0000,
  DCMT_MASTER = 0x0010,
  DCMT_SIGNON = 0x0020,
};

class IDistributionClientMessage
{
public:
  virtual ~IDistributionClientMessage() {}

  virtual bool request_client_message(DistributionClientMessageID id, PacketBuffer &buffer) = 0;

  virtual bool client_message(DistributionClientMessageID id, bool active, const char *client_id, PacketBuffer &buffer) = 0;
};

#endif // IDISTRIBUTIONCLIENTMESSAGE_HH
