summaryrefslogtreecommitdiff
path: root/src/playground.lisp
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2009-08-21 16:47:09 +0200
committerLinus Nordberg <linus@nordu.net>2009-08-21 16:47:09 +0200
commit373afd140a28eb706282fd4891e2e75b507b18aa (patch)
tree9b0cb9e70871936cbc94511df8401c3d460741d6 /src/playground.lisp
parentc64ce57afa8700c52937cfbfd2669a383804e01b (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.lisp58
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))
+