Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

scim_module.h

Go to the documentation of this file.
00001 /** @file scim_module.h
00002  * @brief definition of Module related classes.
00003  */
00004 
00005 /* 
00006  * Smart Common Input Method
00007  * 
00008  * Copyright (c) 2004 James Su <suzhe@turbolinux.com.cn>
00009  * Copyright (c) 2003 James Su <suzhe@turbolinux.com.cn>
00010  * Copyright (c) 2002 James Su <suzhe@turbolinux.com.cn>
00011  *
00012  *
00013  * This library is free software; you can redistribute it and/or
00014  * modify it under the terms of the GNU Lesser General Public
00015  * License as published by the Free Software Foundation; either
00016  * version 2 of the License, or (at your option) any later version.
00017  *
00018  * This library is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00021  * GNU Lesser General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU Lesser General Public
00024  * License along with this program; if not, write to the
00025  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
00026  * Boston, MA  02111-1307  USA
00027  *
00028  * $Id: scim_module.h,v 1.16 2004/02/06 07:53:15 suzhe Exp $
00029  */
00030 
00031 #ifndef __SCIM_MODULE_H
00032 #define __SCIM_MODULE_H
00033 
00034 namespace scim {
00035 
00036 /**
00037  * @addtogroup Helper
00038  * @{
00039  */
00040 
00041 class ModuleError: public Exception
00042 {
00043 public:
00044     ModuleError (const String& what_arg)
00045         : Exception (String("scim::Module: ") + what_arg) { }
00046 };
00047 
00048 class Module 
00049 {
00050     class ModuleImpl;
00051     ModuleImpl *m_impl;
00052 
00053     Module (const Module &);
00054     Module & operator= (const Module &);
00055 
00056 public:
00057     Module ();
00058     Module (const String &name, const String &type);
00059     ~Module ();
00060 
00061     bool load (const String &name, const String &type);
00062     bool unload ();
00063 
00064     bool valid () const;
00065 
00066     bool is_resident () const;
00067     bool make_resident () const;
00068 
00069     String get_path () const;
00070 
00071     void * symbol (const String & sym) const;
00072 };
00073 
00074 int scim_get_module_list (std::vector <String>& mod_list, const String& type = "");
00075 
00076 /** @} */
00077 
00078 } // namespace scim
00079 
00080 #endif //__SCIM_MODULE_H
00081 
00082 /*
00083 vi:ts=4:ai:nowrap:expandtab
00084 */
00085 

Generated on Tue Apr 19 00:10:59 2005 for scim by  doxygen 1.4.1