diff options
author | Linus Nordberg <linus@nordu.net> | 2009-08-21 16:47:09 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2009-08-21 16:47:09 +0200 |
commit | 373afd140a28eb706282fd4891e2e75b507b18aa (patch) | |
tree | 9b0cb9e70871936cbc94511df8401c3d460741d6 /src/playground.lisp | |
parent | c64ce57afa8700c52937cfbfd2669a383804e01b (diff) |
Restructure and add bgpview.
There's one package, BGP-LOGGER, defined in src/package.lisp.
There are two systems, BGPSTORE and BGPVIEW, defined in bgpstore.asd
and bgpview.asd respectively.
The package exports START-BGPSTORE, START-BGPVIEW and their STOP-
counterparts.
Diffstat (limited to 'src/playground.lisp')
-rw-r--r-- | src/playground.lisp | 58 |
1 files changed, 21 insertions, 37 deletions
diff --git a/src/playground.lisp b/src/playground.lisp index 4936cd0..9db5db4 100644 --- a/src/playground.lisp +++ b/src/playground.lisp @@ -1,3 +1,4 @@ +;;;; Parsing XML. (require 'cxml) (require 'usocket) (require 'cl-xmlspam) @@ -64,7 +65,8 @@ (:end-element (format t "}~%")) (:characters (format t (klacks:current-characters s)))) (klacks:consume s)))) -;; + +;; Read stream from socket. (let ((sock (usocket:socket-connect "victoria.tug.nordu.net" 50001 @@ -77,52 +79,22 @@ (format t "Closing socket.~%") (usocket:socket-close sock)) -;;;; -(defun read-stream-into-list (host port) - (let ((reader (new-reader host port)) +(defun play () + (let ((reader (new-reader "victoria.tug" 50001)) (xmls-builder (cxml-xmls:make-xmls-builder))) (do ((e (next-xml-blurb reader "BGP_MESSAGE") (next-xml-blurb reader "BGP_MESSAGE"))) ((null e)) (print (cxml:parse e xmls-builder))) (close-reader))) - -;; -(let ((s nil)) - (defun file-reader (fn) - (when s - (close s)) - (setf s (open fn :element-type '(unsigned-byte 8))) - (lambda (n) - (read-byte s nil))) - (defun close-file () - (close s))) -;; -(defun read-file-into-list (fn) - (let ((reader (file-reader fn)) - (xmls-builder (cxml-xmls:make-xmls-builder))) - (do ((e (next-xml-blurb reader "BGP_MESSAGE") - (next-xml-blurb reader "BGP_MESSAGE"))) - ((null e)) - (print (cxml:parse e xmls-builder))) - (close-file))) ;; (next-xml-blurb (new-reader "victoria.tug.nordu.net" 50001) "BGP_MESSAGE") -;;;; Pattern matching using fare-matcher. -(require :fare-matcher) -(let ((expr '(foo bar))) - (letm - (list a b) ;pattern - expr - (list a b))) -(let ((expr '(foo kaka bar))) - (match - expr - ((list a b) (list 'plain a b)) - ((list a 'kaka b) (list 'cookie a b)))) - ;;;; db +;; To connect to database, wrap your db call(s) in WITH-CONNECTION, +;; passing a spec on the form '(database user password host), see +;; http://common-lisp.net/project/postmodern/postmodern.html. + ;; SQL "select * from bgp_message where timestamp != 0 order by id desc limit 3;" @@ -138,4 +110,16 @@ (dolist (m (select-dao 'bgp-message (:= 'label "NANN"))) (format t "~A ~A ~A~%" (timestamp m) (prefix m) (label m))) +(with-connection '("bgpstore" "bgpstore" "bgpstore" "localhost" ) + (length (select-dao 'bgp-message (:= 'prefix "91.206.67.0/24")))) +(length (query (:limit (:select 'prefix + :from 'bgp-message + :where (:= 'prefix "91.206.67.0/24")) + 10))) +(query-dao 'bgp-message (:limit (:select 'prefix + :from 'bgp-message + :where (:= 'prefix "91.206.67.0/24")) + 13)) + (length (select-dao 'bgp-message)) + |