summaryrefslogtreecommitdiff
path: root/src/test_sender.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/test_sender.cc')
-rw-r--r--src/test_sender.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test_sender.cc b/src/test_sender.cc
new file mode 100644
index 0000000..6622ed1
--- /dev/null
+++ b/src/test_sender.cc
@@ -0,0 +1,41 @@
+#include "common.hh"
+
+#include <cstdlib>
+#include <cstring>
+#include <iostream>
+
+#include "config.hh"
+#include "sender_client.hh"
+
+using namespace stuff;
+
+int main(int argc, char** argv) {
+ class StdError : public SenderClient::Error {
+ public:
+ StdError() {
+ }
+ void error(const std::string& message) override {
+ std::cerr << message << std::endl;
+ }
+ void error(const std::string& message, int error) override {
+ std::cerr << message << ": " << strerror(error) << std::endl;
+ }
+ };
+
+ if (argc != 4) {
+ std::cerr << "Usage: `test_sender CONFIG CHANNEL MESSAGE`" << std::endl;
+ return EXIT_FAILURE;
+ }
+ auto config = Config::create();
+ if (!config->load(argv[1])) {
+ std::cerr << "Error loading config: " << argv[1] << std::endl;
+ return EXIT_FAILURE;
+ }
+ auto error = std::make_shared<StdError>();
+ auto client = SenderClient::create(config.get(), error);
+ if (!client) {
+ return EXIT_FAILURE;
+ }
+ client->send(argv[2], argv[3]);
+ return EXIT_SUCCESS;
+}