maint: build plugin dependent on version of libopensync currently installed
[barry.git] / examples / dbdump.cc
blobacbd641d6bc97137e46a06490fc6ef26d1adf3b4
1 ///
2 /// \file dbdump.cc
3 /// Example code using the Barry library to pull all
4 /// contacts out of the device and dump to stdout.
5 ///
7 /*
8 Copyright (C) 2010, Net Direct Inc. (http://www.netdirect.ca/)
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 See the GNU General Public License in the COPYING file at the
20 root directory of this project for more details.
23 #include <barry/barry.h>
24 #include <iostream>
26 using namespace std;
27 using namespace Barry;
29 struct Callback
31 // storage operator
32 void operator()(Contact &rec)
34 // do something with your record here
35 cout << rec << endl;
39 int main(int argc, char *argv[])
41 try {
43 Barry::Init();
44 Probe probe;
45 int i = probe.FindActive();
46 if( i == -1 ) {
47 cout << "No PIN specified" << endl;
48 return 1;
51 Controller con(probe.Get(i));
52 Mode::Desktop desktop(con);
53 desktop.Open(); // specify password here if needed
55 Callback storage;
56 desktop.LoadDatabaseByType<Contact>(storage);
59 catch( exception &e ) {
60 cerr << e.what() << endl;
61 return 1;
64 return 0;