summaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorChristian Segundo2023-07-24 10:28:58 +0200
committerChristian Segundo2023-07-24 10:28:58 +0200
commitf743e05e207046073999ee7234a157359d6a4f57 (patch)
tree0ceb01ffdcdc3a094e488c28e80c80d89f8309c5 /src/main.zig
parentb02b7f71978a172848322f0671d580e425634916 (diff)
downloadzmission-master.tar.gz
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig242
1 files changed, 124 insertions, 118 deletions
diff --git a/src/main.zig b/src/main.zig
index a88bf8a..704d6c6 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,124 +1,130 @@
const std = @import("std");
const testing = std.testing;
-const transmission = @import("transmission.zig");
-
-var gpa = std.heap.GeneralPurposeAllocator(.{}){};
-const allocator = gpa.allocator();
-
-export fn add(a: i32, b: i32) i32 {
- const clientOptions = transmission.ClientOptions{
- .host = "192.168.0.2",
- .port = 9091,
- .https = false,
- };
- var client = transmission.Client.init(allocator, clientOptions);
- defer client.deinit();
-
- {
- const body = transmission.session_get_raw(&client, null) catch |err| {
- std.debug.print("error: {any}\n", .{err});
- unreachable;
- };
- defer allocator.free(body);
- std.debug.print("body: {s}\n", .{body});
- }
-
- //{
- //const body = transmission.torrent_get_(&client, null) catch |err| {
- //std.debug.print("error: {any}\n", .{err});
- //unreachable;
- //};
- ////defer allocator.free(body);
- //for (body.arguments.torrent_get.torrents.?) |t| {
- //std.debug.print("name: {any}\n", .{t});
- //}
- //}
-
- //{
- //const body = transmission.torrent_get_(&client, null) catch |err| {
- //std.debug.print("error: {any}\n", .{err});
- //unreachable;
- //};
- ////defer allocator.free(body);
- //std.debug.print("body: {any}\n", .{body});
- //}
-
- //{
- //const body = transmission.session_set_raw(&client, .{ .peer_port = 51413 }) catch |err| {
- //std.debug.print("error: {any}\n", .{err});
- //unreachable;
- //};
- //defer allocator.free(body);
- //std.debug.print("body: {s}\n", .{body});
- //}
-
- return a + b;
-}
-
-export fn c_client_init(clientOptions: transmission.ClientOptions) ?*anyopaque {
- var client = allocator.create(transmission.Client) catch unreachable;
- client.* = transmission.Client.init(allocator, clientOptions);
- return @ptrCast(*anyopaque, client);
-}
-
-export fn c_client_deinit(client: ?*anyopaque) void {
- var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
- @alignOf(transmission.Client),
- client.?,
- ));
- real_client.*.deinit();
- allocator.destroy(real_client);
-}
-
-export fn c_session_get(client: ?*anyopaque, buf: [*]u8) c_int {
- var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
- @alignOf(transmission.Client),
- client.?,
- ));
-
- const body = transmission.session_get_raw(real_client, null) catch |err| {
- std.debug.print("error: {any}\n", .{err});
- unreachable;
- };
- defer allocator.free(body);
-
- std.debug.print("body: {s}\n", .{body});
- _ = buf;
- return 0;
-}
-
-export fn c_torrent_get(client: ?*anyopaque) [*:0]u8 {
- var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
- @alignOf(transmission.Client),
- client.?,
- ));
-
- const body = transmission.torrent_get_raw(real_client, null) catch |err| {
- std.debug.print("error: {any}\n", .{err});
- unreachable;
- };
- defer allocator.free(body);
- // TODO: use the same pointer of body but gotta go fast :(
- var foo = std.ArrayList(u8).init(allocator);
- foo.insertSlice(0, body) catch unreachable;
+pub const Request = @import("request.zig").Request;
+pub const Types = @import("types.zig");
- //std.debug.print("body: {s}\n", .{body});
- return foo.toOwnedSliceSentinel(0) catch unreachable;
+test {
+ testing.refAllDecls(@This());
}
-test "c api" {
- const clientOptions = transmission.ClientOptions{
- .host = "192.168.0.2",
- .port = 9091,
- .https = false,
- };
- var foo = c_client_init(clientOptions);
- _ = c_session_get(foo, undefined);
- _ = c_torrent_get(foo);
- c_client_deinit(foo);
-}
-
-test "basic add functionality" {
- try testing.expect(add(3, 7) == 10);
-}
+//var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+//const allocator = gpa.allocator();
+
+//export fn add(a: i32, b: i32) i32 {
+//const clientOptions = transmission.ClientOptions{
+//.host = "192.168.0.2",
+//.port = 9091,
+//.https = false,
+//};
+//var client = transmission.Client.init(allocator, clientOptions);
+//defer client.deinit();
+
+//{
+//const body = transmission.session_get_raw(&client, null) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+//defer allocator.free(body);
+//std.debug.print("body: {s}\n", .{body});
+//}
+
+//{
+//const body = transmission.torrent_get_(&client, null) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+////defer allocator.free(body);
+//for (body.arguments.torrent_get.torrents.?) |t| {
+//std.debug.print("name: {any}\n", .{t});
+//}
+//}
+
+//{
+//const body = transmission.torrent_get_(&client, null) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+////defer allocator.free(body);
+//std.debug.print("body: {any}\n", .{body});
+//}
+
+//{
+//const body = transmission.session_set_raw(&client, .{ .peer_port = 51413 }) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+//defer allocator.free(body);
+//std.debug.print("body: {s}\n", .{body});
+//}
+
+//return a + b;
+//}
+
+//export fn c_client_init(clientOptions: transmission.ClientOptions) ?*anyopaque {
+//var client = allocator.create(transmission.Client) catch unreachable;
+//client.* = transmission.Client.init(allocator, clientOptions);
+//return @ptrCast(*anyopaque, client);
+//}
+
+//export fn c_client_deinit(client: ?*anyopaque) void {
+//var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
+//@alignOf(transmission.Client),
+//client.?,
+//));
+//real_client.*.deinit();
+//allocator.destroy(real_client);
+//}
+
+//export fn c_session_get(client: ?*anyopaque, buf: [*]u8) c_int {
+//var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
+//@alignOf(transmission.Client),
+//client.?,
+//));
+
+//const body = transmission.session_get_raw(real_client, null) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+//defer allocator.free(body);
+
+//std.debug.print("body: {s}\n", .{body});
+//_ = buf;
+//return 0;
+//}
+
+//export fn c_torrent_get(client: ?*anyopaque) [*:0]u8 {
+//var real_client: *transmission.Client = @ptrCast(*transmission.Client, @alignCast(
+//@alignOf(transmission.Client),
+//client.?,
+//));
+
+//const body = transmission.torrent_get_raw(real_client, null) catch |err| {
+//std.debug.print("error: {any}\n", .{err});
+//unreachable;
+//};
+//defer allocator.free(body);
+
+//// TODO: use the same pointer of body but gotta go fast :(
+//var foo = std.ArrayList(u8).init(allocator);
+//foo.insertSlice(0, body) catch unreachable;
+
+////std.debug.print("body: {s}\n", .{body});
+//return foo.toOwnedSliceSentinel(0) catch unreachable;
+//}
+
+//test "c api" {
+//const clientOptions = transmission.ClientOptions{
+//.host = "192.168.0.2",
+//.port = 9091,
+//.https = false,
+//};
+//var foo = c_client_init(clientOptions);
+//_ = c_session_get(foo, undefined);
+//_ = c_torrent_get(foo);
+//c_client_deinit(foo);
+//}
+
+//test "basic add functionality" {
+//try testing.expect(add(3, 7) == 10);
+//}