WvStreams
servmgr.h
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002  *
00003  * XPLC - Cross-Platform Lightweight Components
00004  * Copyright (C) 2000-2002, Pierre Phaneuf
00005  * Copyright (C) 2001, Stéphane Lajoie
00006  * Copyright (C) 2002-2004, Net Integration Technologies, Inc.
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public License
00010  * as published by the Free Software Foundation; either version 2.1 of
00011  * the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful, but
00014  * WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00021  * USA
00022  */
00023 
00024 #ifndef __XPLC_SERVMGR_H__
00025 #define __XPLC_SERVMGR_H__
00026 
00027 #include <xplc/IServiceManager.h>
00028 #include "handlernode.h"
00029 
00030 class ServiceManager: public IServiceManager {
00031   IMPLEMENT_IOBJECT(ServiceManager);
00032 private:
00033   HandlerNode* handlers;
00034 public:
00035   ServiceManager():
00036     handlers(0) {
00037   }
00038   virtual ~ServiceManager();
00039   /* IServiceManager */
00040   virtual void addHandler(IServiceHandler*);
00041   virtual void addFirstHandler(IServiceHandler*);
00042   virtual void addLastHandler(IServiceHandler*);
00043   virtual void removeHandler(IServiceHandler*);
00044   virtual IObject* getObject(const UUID&);
00045 };
00046 
00047 #endif /* __XPLC_SERVMGR_H__ */