Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members  

IObject.h

Go to the documentation of this file.
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-2003, Pierre Phaneuf
00005  * Copyright (C) 2002, Net Integration Technologies, Inc.
00006  * Copyright (C) 2002, Stéphane Lajoie
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_IOBJECT_H__
00025 #define __XPLC_IOBJECT_H__
00026 
00032 #include <xplc/uuid.h>
00033 
00034 #ifndef UNSTABLE
00035 
00042 #define UNSTABLE_INTERFACE static bool UNSTABLE_INTERFACE = true;
00043 #else
00044 #define UNSTABLE_INTERFACE
00045 #endif
00046 
00047 class IWeakRef;
00048 
00061 class IObject {
00062   UNSTABLE_INTERFACE
00063 public:
00079   virtual unsigned int addRef() = 0;
00080     
00092   virtual unsigned int release() = 0;
00093     
00108   virtual IObject* getInterface(const UUID&) = 0;
00109     
00119   virtual IWeakRef* getWeakRef() = 0;
00120 };
00121 
00123 DEFINE_IID(IObject, {0x8ca76e98, 0xb653, 0x43d7,
00124   {0xb0, 0x56, 0x8b, 0x9d, 0xde, 0x9a, 0xbe, 0x9d}});
00125 
00126 #endif /* __XPLC_IOBJECT_H__ */

Generated on Sun Sep 26 04:01:25 2004 for XPLC by doxygen1.2.18