From df3b2a27662167892c922d4dd1714dc748079010 Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Sun, 18 May 2003 21:55:16 +0000
Subject: moved to FbTk, and change DirHelper to Directory

---
 src/DirHelper.cc         |  84 ----------------------------
 src/DirHelper.hh         |  53 ------------------
 src/Resource.cc          | 119 ---------------------------------------
 src/Resource.hh          | 142 -----------------------------------------------
 src/XrmDatabaseHelper.hh |  78 --------------------------
 5 files changed, 476 deletions(-)
 delete mode 100644 src/DirHelper.cc
 delete mode 100644 src/DirHelper.hh
 delete mode 100644 src/Resource.cc
 delete mode 100644 src/Resource.hh
 delete mode 100644 src/XrmDatabaseHelper.hh

diff --git a/src/DirHelper.cc b/src/DirHelper.cc
deleted file mode 100644
index 19f7612..0000000
--- a/src/DirHelper.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-// DirHelper.cc
-// Copyright (c) 2002 Henrik Kinnunen (fluxgen at users.sourceforge.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: DirHelper.cc,v 1.2 2003/02/15 01:42:17 fluxgen Exp $
-
-#include "DirHelper.hh"
-
-DirHelper::DirHelper(const char *dir):m_dir(0),
-m_num_entries(0) {
-    if (dir != 0)
-        open(dir);
-}
-
-DirHelper::~DirHelper() {
-    if (m_dir != 0)
-        close();
-}
-
-void DirHelper::rewind() {
-    if (m_dir != 0)
-        rewinddir(m_dir);
-}
-
-struct dirent *DirHelper::read() {
-    if (m_dir == 0)
-        return 0;
-
-    return readdir(m_dir);
-}
-
-std::string DirHelper::readFilename() {
-    dirent *ent = read();
-    if (ent == 0)
-        return "";
-    return (ent->d_name ? ent->d_name : "");
-}
-
-void DirHelper::close() {
-    if (m_dir != 0) { 
-        closedir(m_dir);
-        m_dir = 0;
-        m_num_entries = 0;
-    }
-}
-
-
-bool DirHelper::open(const char *dir) {
-    if (dir == 0)
-        return false;
-
-    if (m_dir != 0)
-        close();
-
-    m_dir = opendir(dir);
-    if (m_dir == 0) // successfull loading?
-        return false;
-
-    // get number of entries
-    while (read())
-        m_num_entries++;
-
-    rewind(); // go back to start
-
-    return true;
-}
-
diff --git a/src/DirHelper.hh b/src/DirHelper.hh
deleted file mode 100644
index c41066b..0000000
--- a/src/DirHelper.hh
+++ /dev/null
@@ -1,53 +0,0 @@
-// DirHelper.hh
-// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at users.sourceforge.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: DirHelper.hh,v 1.2 2003/02/15 01:41:50 fluxgen Exp $
-
-#ifndef DIRHELPER_HH
-#define DIRHELPER_HH
-
-#include "NotCopyable.hh"
-
-#include <sys/types.h>
-#include <dirent.h>
-#include <string>
-
-///  Wrapper class for DIR * routines
-class DirHelper: private FbTk::NotCopyable {
-public:
-    explicit DirHelper(const char *dir = 0);
-    ~DirHelper();
-
-    void rewind();
-    /// gets next dirent info struct in directory
-    struct dirent * read();
-    /// reads next filename in directory
-    std::string readFilename();
-    void close();    
-    bool open(const char *dir);
-    /// @return number of entries in the directory
-    size_t entries() const { return m_num_entries; }
-private:
-    DIR *m_dir;
-    size_t m_num_entries; ///< number of file entries in directory
-};
-
-#endif // DIRHELPER_HH
diff --git a/src/Resource.cc b/src/Resource.cc
deleted file mode 100644
index fb96b71..0000000
--- a/src/Resource.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-// Resource.cc
-// Copyright (c) 2002 Henrik Kinnunen (fluxgen@linuxmail.org)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: Resource.cc,v 1.4 2002/12/01 13:41:58 rathnor Exp $
-
-#include "Resource.hh"
-#include "XrmDatabaseHelper.hh"
-
-#include <iostream>
-#include <cassert>
-
-using namespace std;
-
-bool ResourceManager::m_init = false;
-
-//-------- load -----------
-// loads a resourcefile 
-// returns true on success
-// else false
-//-------------------------
-bool ResourceManager::load(const char *filename) {
-    assert(filename);
-
-    ensureXrmIsInitialize();
-	
-    XrmDatabaseHelper database;
-    database = XrmGetFileDatabase(filename);
-    if (database==0)
-        return false;
-	
-    XrmValue value;
-    char *value_type;
-	
-    //get list and go throu all the resources and load them
-    ResourceList::iterator i = m_resourcelist.begin();
-    ResourceList::iterator i_end = m_resourcelist.end();	
-    for (; i != i_end; ++i) {
-	
-        Resource_base *resource = *i;
-        if (XrmGetResource(*database, resource->name().c_str(),
-                           resource->altName().c_str(), &value_type, &value))			
-            resource->setFromString(value.addr);
-        else {
-            cerr<<"Failed to read: "<<resource->name()<<endl;
-            cerr<<"Setting default value"<<endl;
-            resource->setDefaultValue();
-        }
-    }
-
-    return true;
-}
-
-//-------------- save -----------------
-// Saves all the resource to a file
-// returns 0 on success
-// else negative value representing
-// the error
-//-------------------------------------
-bool ResourceManager::save(const char *filename, const char *mergefilename) {
-    assert(filename);
-	
-    ensureXrmIsInitialize();
-
-    XrmDatabaseHelper database;
-
-    string rc_string;	
-    ResourceList::iterator i = m_resourcelist.begin();
-    ResourceList::iterator i_end = m_resourcelist.end();
-    //write all resources to database
-    for (; i != i_end; ++i) {
-        Resource_base *resource = *i;
-        rc_string = resource->name() + string(": ") + resource->getString();
-        XrmPutLineResource(&*database, rc_string.c_str());
-    }
-
-    if (database==0)
-        return false;
-	
-    //check if we want to merge a database
-    if (mergefilename) {
-        XrmDatabaseHelper olddatabase(mergefilename);
-        if (olddatabase == 0) // did we load the file?
-            return false;
-		
-        XrmMergeDatabases(*database, &*olddatabase); // merge databases
-        XrmPutFileDatabase(*olddatabase, filename); // save database to file
-		
-        *database = 0; // don't try to destroy the database
-    } else // save database to file
-        XrmPutFileDatabase(*database, filename);
-
-    return true;
-}
-
-void ResourceManager::ensureXrmIsInitialize() {
-    if (!m_init) {
-        XrmInitialize();
-        m_init = true;
-    }
-}
-	
diff --git a/src/Resource.hh b/src/Resource.hh
deleted file mode 100644
index d657b5b..0000000
--- a/src/Resource.hh
+++ /dev/null
@@ -1,142 +0,0 @@
-// Resource.hh
-// Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen(at)users.sourceforge.net)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: Resource.hh,v 1.12 2003/05/10 13:44:24 fluxgen Exp $
-
-#ifndef RESOURCE_HH
-#define RESOURCE_HH
-
-#include "NotCopyable.hh"
-#include <string>
-#include <list>
-
-/// Base class for resources, this is only used in ResourceManager
-class Resource_base:private FbTk::NotCopyable
-{
-public:
-    virtual ~Resource_base() { };	
-	
-    /// set from string value
-    virtual void setFromString(char const *strval) = 0;
-    /// set default value
-    virtual void setDefaultValue() = 0;
-    /// get string value
-    virtual std::string getString() = 0;
-    /// get alternative name of this resource
-    inline const std::string& altName() const { return m_altname; }
-    /// get name of this resource
-    inline const std::string& name() const { return m_name; }
-
-protected:	
-    Resource_base(const std::string &name, const std::string &altname):
-	m_name(name), m_altname(altname)
-	{ }
-
-private:
-    std::string m_name; ///< name of this resource
-    std::string m_altname; ///< alternative name 
-};
-
-template <typename T>
-class Resource;
-
-class ResourceManager
-{
-public:
-    typedef std::list<Resource_base *> ResourceList;
-
-    ResourceManager() { }
-    virtual ~ResourceManager() {}
-
-    /// Load all resources registered to this class
-    /// @return true on success
-    virtual bool load(const char *filename);
-
-    /// Save all resouces registered to this class
-    /// @return true on success
-    virtual bool save(const char *filename, const char *mergefilename=0);
-
-    /// Add resource to list, only used in Resource<T>
-    template <class T>
-    void addResource(Resource<T> &r) {
-        m_resourcelist.push_back(&r);
-        m_resourcelist.unique();
-    }
-
-    /// Remove a specific resource, only used in Resource<T>
-    template <class T>
-    void removeResource(Resource<T> &r) {
-        m_resourcelist.remove(&r);
-    }
-
-protected:
-    static void ensureXrmIsInitialize();
-
-private:
-    static bool m_init;
-    ResourceList m_resourcelist;
-};
-
-
-/// Real resource class
-/**
- * usage: Resource<int> someresource(resourcemanager, 10, "someresourcename", "somealternativename"); \n
- * and then implement setFromString and getString \n
- * example: \n
- * template <> \n
- * void Resource<int>::setFromString(const char *str) { \n
- *   *(*this) = atoi(str); \n
- * }
- */
-template <typename T>
-class Resource:public Resource_base
-{
-public:	
-    Resource(ResourceManager &rm, T val, 
-             const std::string &name, const std::string &altname):
-	Resource_base(name, altname),
-	m_value(val), m_defaultval(val),
-	m_rm(rm)
-	{
-            m_rm.addResource(*this); // add this to resource handler
-	}
-    virtual ~Resource() {
-        m_rm.removeResource(*this); // remove this from resource handler
-    }
-
-    inline void setDefaultValue() {  m_value = m_defaultval; }
-    /// sets resource from string, specialized, must be implemented
-    void setFromString(const char *strval);
-    inline Resource<T>& operator = (const T& newvalue) { m_value = newvalue;  return *this;}
-    /// specialized, must be implemented
-    /// @return string value of resource
-    std::string getString();
-
-    inline T& operator*() { return m_value; }
-    inline const T& operator*() const { return m_value; }
-    inline T *operator->() { return &m_value; }
-    inline const T *operator->() const { return &m_value; }
-private:
-    T m_value, m_defaultval;
-    ResourceManager &m_rm;
-};
-
-#endif // RESOURCE_HH
diff --git a/src/XrmDatabaseHelper.hh b/src/XrmDatabaseHelper.hh
deleted file mode 100644
index 0cd3f52..0000000
--- a/src/XrmDatabaseHelper.hh
+++ /dev/null
@@ -1,78 +0,0 @@
-// XrmDatabaseHelper.hh
-// Copyright (c) 2002 Henrik Kinnunen (fluxgen@linuxmail.org)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-// DEALINGS IN THE SOFTWARE.
-
-// $Id: XrmDatabaseHelper.hh,v 1.7 2002/12/02 22:12:09 fluxgen Exp $
-
-// This is a helper for XrmDatabase
-// when database goes out of scope
-// the XrmDatabase variable will be destroyed.
-
-#ifndef XRMDATABASEHELPER_HH
-#define XRMDATABASEHELPER_HH
-
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-
-/**
-	Helper class for XrmDatabase.
-*/
-class XrmDatabaseHelper
-{
-public:
-    XrmDatabaseHelper(char const * filename=0)
-	: m_database(0)
-    { if (filename != 0) load(filename); }
-	
-    ~XrmDatabaseHelper() {
-        close();
-    }
-
-    /// assignment operator
-    XrmDatabaseHelper& operator=(const XrmDatabase& database) {
-        if (m_database!=0)
-            XrmDestroyDatabase(m_database);
-        m_database = database; 
-        return *this;
-    }
-    bool load(const char *filename) {
-        if (filename == 0)
-            return false;
-        XrmDatabase db = XrmGetFileDatabase(filename);
-        if (db == 0)
-            return false;
-        close(); // close old database 
-        m_database = db; // set new and return true
-        return true;
-    }
-    void close() {
-        if (m_database != 0) {
-            XrmDestroyDatabase(m_database);
-            m_database = 0;
-        }
-    }
-    bool operator == (const XrmDatabase& database) { return m_database == database; }
-    XrmDatabase & operator*(void) {	return m_database; }
-
-private:
-    XrmDatabase m_database;	
-};
-
-#endif //_XRMDATABASEHELPER_HH_
-- 
cgit v0.11.2