Strigi desktop-integration
-
Upload
flavio-castelli -
Category
Technology
-
view
883 -
download
2
description
Transcript of Strigi desktop-integration
![Page 1: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/1.jpg)
Strigi Desktop integration
Flavio Castelli
![Page 2: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/2.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Why choose Strigi
Strigi's main features
● fast and lightweight
● portable
● extensible
● next KDE4 desktop searching engine
● can be easily accessed from external programs
![Page 3: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/3.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
What can be done by Strigi
Strigi's capabilities
● perform fast searches across heterogeneous data
collections
● extract metadata informations from files
● index compressed archives contents
● create/recreate/discover relations between
different data
![Page 4: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/4.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
How to interact with Strigi
Strigi communication interfaces
socket DBus
![Page 5: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/5.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
How to interact with Strigi
Socket interface
Benefits:
● well known mechanism
● can be accessed from different languages / OS
Drawbacks:
● actually has less priority --> it isn't fully tested
![Page 6: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/6.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
How to interact with Strigi
DBus interface
The best way to access Strigi features:
● simple and fast to use
● IPC protocol used by KDE4 and Gnome
● there are lots of DBus bindings
● actively developed
![Page 7: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/7.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
How to interact with Strigi
Available functions
Everything can be performed through the socket and DBus interfaces:
● start/stop Strigi daemon
● add/remove filters
● force index updates
● index a specific resource
● perform searches (and retrieve results ;)
![Page 8: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/8.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
How to interact with Strigi
Available classes for C++ developers
Existing C++ classes for playing with Strigi:
● AsyncSocketClient: access socket interface
● DBusClientInterface: access DBus interface
Automatically shipped with Strigi installation
![Page 9: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/9.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Strigi Clients
“main” clients
Their code can be taken as example:● StrigiClient:
● written in C++● uses Qt4● connection through Dbus interface
● StrigiApplet:● written in C++● uses KDE3 libs● connection through socket interface
![Page 10: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/10.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Strigi Clients
Strigi's Gnome DeskBar handler
![Page 11: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/11.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Strigi Clients
Strigi's Gnome DeskBar handler
Features:
● written in python
● communicate using DBus interface
● only 95 lines of code
Strigi integration is easy
![Page 12: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/12.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
JStreams
Really short description
What are JStreams:
● a C++ “transposition” of Java InputStream childs
public StreamDemo(URL url) throws IOException{ InputStream filestream = url.openStream(); ZipInputStream zipstream = new ZipInputStream(filestream); ZipEntry entry = zipstream.getNextEntry(); while (entry != null) { handleEntry(zipstream, entry); }}
![Page 13: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/13.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
JStreams
The power of JStreams
● flexible: can be extended for supporting new file types
● really fast (especially while accessing compressed archives)
● easy to use● code reuse: can be used by other programs with
ease
![Page 14: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/14.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
JStreams
JStreams actual status
More relevant file types:
● compressed archives: tar, gzip, bz2, ar,...
● linux distribution packages: deb, rpm,...
● pdf files
● ...
![Page 15: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/15.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreamsA simple example
![Page 16: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/16.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreams
QClient
Simple Qt4 program that uses JStreams:
● navigate through archive files
● can open archive file contents
How can be done ?
![Page 17: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/17.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreams
QArchiveEngine Class
QAbstracFileEngine
ArchiveEngineBase
ArchiveEngine
Access archive files
as directories
![Page 18: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/18.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreams
QArchiveEngine Class
For accessing compressed files as directories:
● create a new QAbstractFileEngine child
● use JStreams inside it
● register the new engine
All Qt classes that provides file system access will use it whenever it's possible
![Page 19: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/19.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreams into KDE
JStreams and KDE
Also KDE programs can use JStreams functionalities:
JStreams KIOSlave
● Available for KDE3
● Already into KDE4 trunk
![Page 20: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/20.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Use JStreams into KDE
JStream KIOSLAVE
![Page 21: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/21.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Conclusions
Interact with Strigi
● use Strigi's features is really simple● it can be done from:
● different programming languages● different window managers● different OS
● you can use Strigi for:● desktop searching tasks● fast and simple access to a large set of file types
![Page 22: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/22.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Conclusions
Strigi's integration
Actually we cover a good set of SCENARIO
● StrigiClient: generic window manager
● StrigiApplet: kde client
● Gnome DeskBar handler: self-explaining
In the near future:
● a KDE4 Plasmoid client
![Page 23: Strigi desktop-integration](https://reader034.fdocuments.in/reader034/viewer/2022052621/557bee16d8b42a302d8b4a99/html5/thumbnails/23.jpg)
Strigi desktop integration
Flavio Castelli
FOSDEM 2007
Conclusions
Strigi's integration: the future...
There is lot of work to be done on the client-side:● keep improving actual interfaces● improve usability & integration● create a better user experience
create a better user experience