[BACK]Return to FilesystemCategory.h CVS log [TXT][DIR] Up to [Development] / failsafe / FailSafe-mgr / category / filesystem

File: [Development] / failsafe / FailSafe-mgr / category / filesystem / FilesystemCategory.h (download)

Revision 1.5, Mon Jul 24 22:36:22 2000 UTC (17 years, 3 months ago) by rusty
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +28 -21 lines

Added GPL/LGPL copyright headers & documentation for open source release, and removed CXFS stuff

//
// FilesystemCategory.h
//
//	Category for filesystems in clusters.
//
//
//  Copyright (c) 1998, 2000 Silicon Graphics, Inc.  All Rights Reserved.
//  
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of version 2.1 of the GNU Lesser General Public
//  License as published by the Free Software Foundation.
//  
//  This program is distributed in the hope that it would be useful, but
//  WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//  
//  Further, this software is distributed without any warranty that it is
//  free of the rightful claim of any third person regarding infringement
//  or the like.  Any license provided herein, whether implied or
//  otherwise, applies only to this software file.  Patent licenses, if
//  any, provided herein do not apply to combinations of this program
//  with other software, or any other product whatsoever.
//  
//  You should have received a copy of the GNU Lesser General Public
//  License along with this program; if not, write the Free Software
//  Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
//  USA.
//  
//  Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
//  Mountain View, CA 94043, or http://www.sgi.com/
//  
//  For further information regarding this notice, see:
//  http://oss.sgi.com/projects/GenInfo/NoticeExplan/
//

#ident "$Revision: 1.5 $"

#include <sysadm/CategoryFactory.h>

#include <fsmgr/CamCategory.h>

namespace fsmgr {

SaCATEGORY_REF_DECL(FilesystemCategory);

//
// FilesystemCategory maintains an Item for each known filesystem.
//
class FilesystemCategory : public CamCategory {
  friend class FsClusterListener;
  public:
    FilesystemCategory();
    ~FilesystemCategory();

    virtual void startMonitor();

    // Used internally for logging.
    static const char* NAME;

  protected:
    void buildItemListFromCluster(const Item&);

    virtual void modifyItemOnCamEvent(Item* item);

  private:
    static const char* FS_DISABLED;

    int _numFs;
    String* _filesystems;

    Category* _clusterCategory;
    NotificationFilter _filter;
    CategoryListenerHandle* _handle;
    CategoryListener* _listener;
};

} // namespace fsmgr