SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

This wrapper may be distributed under the terms of the General Public License (see COPYING)


See VERSION for version information.

A C++ wrapper for fam from sgi.
fam can be found at http://oss.sgi.com/projects/fam/

fam uses imon to inform it when inodes change, the net effect being that applications can register interest in a file, and have events send to the application when the file changes.

The fam++ wrapper (hopefully) makes fam a little easier to use. It does this by using exceptions instead of return values to indicate error, allow type safe callbacks using functors and compile time checking.

If GDK http://developer.gnome.org/doc/API/gdk/index.html is installed and #included before fam.hh then there is an additional class Fampp_gdk which calls gdk functions to allow gdk to signal the fam++ wrapper which will call your functor when file changes occur.

The GDK subclass hopefully make it nice and easy to use fam++ from a GTK+ application.


At the moment there is no real doco for this wrapper. I will (hopefully) document the API sometime soon.

Also note that automake/conf are not currently used for the examples... they are very simple and I don't know that I will be rushing to add support for auto stuff soon, the only real need is for location of the SGI STL (or any other STL that has hash_map<>). The code does not require hash_map<> but if #include <hash_map.h> has occured before the fam.hh is included then the wrapper does use this collection. if hash_map<> is not available then map<> is used, but it is a waste, the collection does not need to be ordered...


The following are the reasons for my choices

Rationale

I made FamppRequest copy const and assign operator private so that no model is required for each request. A trade off in code/complexity verses flexability.

Rationale

I used a FamppRequest* for the monitor methods return type because I didn't want the fam++ wrapper imposing a lifetime on requests.


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.