Skip to content

Commit 562fc40

Browse files
authored
Merge pull request #12 from clacke/ndn-cpp-c-bindings
Problem: No ffi bindings for ndn-cpp-c
2 parents c5940b0 + 94b1250 commit 562fc40

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

ndn-cpp-c-bindings/common.rkt

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#lang racket/base
2+
3+
(require ffi/unsafe)
4+
5+
(require ndn-cpp-c-bindings/ffi)
6+
7+
(provide (all-defined-out))
8+
9+
(define ndn_Milliseconds _double)
10+
(define ndn_MillisecondsSince1970 _double)
11+
12+
(define-ndn get-now-milliseconds (_fun -> ndn_MillisecondsSince1970) #:c-id ndn_getNowMilliseconds)
13+
14+
15+
(define MAX_NDN_PACKET_SIZE 8800)
16+
(define ndn_SHA256_DIGEST_SIZE 32)
17+
(define ndn_AES_128_BLOCK_SIZE 16)

ndn-cpp-c-bindings/default.nix

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{ pkgs ? import (import ../pins/nixpkgs) {}
2+
, ndn-cpp ? pkgs.callPackage ../ndn-cpp {}
3+
, racket2nix ? import (import ../pins/racket2nix) {}
4+
}:
5+
6+
let
7+
inherit (racket2nix) buildRacketPackage;
8+
in
9+
10+
(buildRacketPackage ./.).overrideAttrs (oldAttrs: { LD_LIBRARY_PATH = "${ndn-cpp}/lib"; })

ndn-cpp-c-bindings/ffi.rkt

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#lang racket/base
2+
3+
(require ffi/unsafe)
4+
(require ffi/unsafe/define)
5+
6+
(provide (all-defined-out))
7+
8+
(define ndn-lib (ffi-lib "libndn-c" "0"))
9+
10+
(define-ffi-definer define-ndn ndn-lib)

ndn-cpp-c-bindings/info.rkt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#lang setup/infotab
2+
3+
(define collection "ndn-cpp-c-bindings")
4+
(define deps '("base"))
5+
(define racket-launcher-names '("test-ndn-cpp-c-bindings"))
6+
(define racket-launcher-libraries '("test/main.rkt"))

ndn-cpp-c-bindings/test/main.rkt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#lang racket
2+
3+
(require ndn-cpp-c-bindings/common)
4+
5+
(module+ main
6+
(printf "epoch milliseconds: ~a~n" (get-now-milliseconds)))

0 commit comments

Comments
 (0)