+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2007-2008 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#ifndef COMMAND_H_
#define COMMAND_H_
+#include <ostream>
#include <string>
#include <sigc++/sigc++.h>
#include "constants.h"
namespace Marklin {
+class Reply;
+
class Command
{
public:
- sigc::signal<void, Error, const std::string &> signal_done;
+ sigc::signal<void, const Reply &> signal_done;
- Command(const std::string &c): cmd(c), sent(false) { }
- void set_sent(bool s) { sent=s; }
- const std::string &get_command() const { return cmd; }
- bool get_sent() const { return sent; }
private:
- std::string cmd;
- bool sent;
+ Cmd cmd;
+ unsigned char data[128];
+ unsigned len;
+ bool sent;
+
+public:
+ Command(Cmd, const unsigned char *, unsigned);
+
+ void send(int);
+ bool is_sent() const { return sent; }
+ Cmd get_command() const { return cmd; }
+
+ friend std::ostream &operator<<(std::ostream &, const Command &);
};
} // namespace Marklin