OSDN Git Service

add factory method
authorikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sun, 7 Dec 2003 01:59:50 +0000 (01:59 +0000)
committerikemo <ikemo@56b19765-1e22-0410-a548-a0f45d66c51a>
Sun, 7 Dec 2003 01:59:50 +0000 (01:59 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/kita/kita/trunk@620 56b19765-1e22-0410-a548-a0f45d66c51a

kita/src/libkita/board.cpp
kita/src/libkita/board.h

index a8525fd..a464be9 100644 (file)
 #include <kfilterdev.h>
 
 #include <qregexp.h>
+#include <qdict.h>
 
 #include "qcp932codec.h"
 
 using namespace Kita;
 
+QDict<Board>* Board::m_boardDict = 0;
+
 Board::Board()
 {
 }
@@ -157,6 +160,22 @@ bool Board::test()
   return true;
 }
 
+Board* Board::create( const QString& boardURL, const QString& boardName )
+{
+    if ( m_boardDict == 0 ) {
+        m_boardDict = new QDict<Board>();
+    }
+
+    if( m_boardDict->find( boardURL ) ) {
+        return m_boardDict->find( boardURL );
+    }
+
+    Board* newBoard = new Board( boardURL, boardName );
+    m_boardDict->insert( boardURL, newBoard );
+
+    return newBoard;
+}
+
 NullBoard::NullBoard()
 {
 }
index d1d1186..2874dff 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <qptrlist.h>
 #include <qxml.h>
+#include <qdict.h>
 
 #include "thread.h"
 
@@ -29,6 +30,7 @@ namespace Kita {
   {
     KURL m_boardURL;
     QString m_boardName;
+    static QDict<Board>* m_boardDict;
   public:
     Board();
     Board(const KURL& boardURL, const QString boardName = QString::null);
@@ -43,6 +45,9 @@ namespace Kita {
     static Board fromXml( const QString& xml );
 
     static bool test();
+
+    // Factory method
+    static Board* create( const QString& boardURL, const QString& boardName = QString::null );
   };
 
   class NullBoard : public Board