Milestone 2
This commit is contained in:
parent
14e3afdd7b
commit
866f0419ad
19 changed files with 2006 additions and 23 deletions
22
examples/minimal.cpp
Normal file
22
examples/minimal.cpp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#include <iostream>
|
||||
|
||||
#include <warppipe/warppipe.hpp>
|
||||
|
||||
int main() {
|
||||
warppipe::ConnectionOptions options;
|
||||
auto client_result = warppipe::Client::Create(options);
|
||||
if (!client_result.ok()) {
|
||||
std::cerr << "warppipe: failed to create client: "
|
||||
<< client_result.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
auto sink_result = client_result.value->CreateVirtualSink("example_sink");
|
||||
if (!sink_result.ok()) {
|
||||
std::cerr << "warppipe: failed to create sink: "
|
||||
<< sink_result.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
95
examples/warppipe_cli.cpp
Normal file
95
examples/warppipe_cli.cpp
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
#include <warppipe/warppipe.hpp>
|
||||
|
||||
namespace {
|
||||
|
||||
uint32_t ParseId(const char* value) {
|
||||
if (!value) {
|
||||
return 0;
|
||||
}
|
||||
char* end = nullptr;
|
||||
unsigned long parsed = std::strtoul(value, &end, 10);
|
||||
if (!end || end == value) {
|
||||
return 0;
|
||||
}
|
||||
return static_cast<uint32_t>(parsed);
|
||||
}
|
||||
|
||||
int Usage() {
|
||||
std::cerr << "Usage:\n"
|
||||
<< " warppipe_cli list-nodes\n"
|
||||
<< " warppipe_cli list-ports <node-id>\n"
|
||||
<< " warppipe_cli list-links\n";
|
||||
return 2;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
if (argc < 2) {
|
||||
return Usage();
|
||||
}
|
||||
|
||||
std::string command = argv[1];
|
||||
warppipe::ConnectionOptions options;
|
||||
options.application_name = "warppipe-cli";
|
||||
|
||||
auto client_result = warppipe::Client::Create(options);
|
||||
if (!client_result.ok()) {
|
||||
std::cerr << "warppipe: failed to connect: "
|
||||
<< client_result.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (command == "list-nodes") {
|
||||
auto nodes = client_result.value->ListNodes();
|
||||
if (!nodes.ok()) {
|
||||
std::cerr << "warppipe: list-nodes failed: " << nodes.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
for (const auto& node : nodes.value) {
|
||||
std::cout << node.id.value << "\t" << node.name << "\t" << node.media_class << "\n";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (command == "list-ports") {
|
||||
if (argc < 3) {
|
||||
return Usage();
|
||||
}
|
||||
uint32_t node_id = ParseId(argv[2]);
|
||||
if (node_id == 0) {
|
||||
std::cerr << "warppipe: invalid node id\n";
|
||||
return 1;
|
||||
}
|
||||
auto ports = client_result.value->ListPorts(warppipe::NodeId{node_id});
|
||||
if (!ports.ok()) {
|
||||
std::cerr << "warppipe: list-ports failed: " << ports.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
for (const auto& port : ports.value) {
|
||||
std::cout << port.id.value << "\t" << port.name << "\t"
|
||||
<< (port.is_input ? "in" : "out") << "\n";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (command == "list-links") {
|
||||
auto links = client_result.value->ListLinks();
|
||||
if (!links.ok()) {
|
||||
std::cerr << "warppipe: list-links failed: " << links.status.message << "\n";
|
||||
return 1;
|
||||
}
|
||||
for (const auto& link : links.value) {
|
||||
std::cout << link.id.value << "\t" << link.output_port.value << "\t"
|
||||
<< link.input_port.value << "\n";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Usage();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue