[Scummvm-cvs-logs] SF.net SVN: scummvm: [28027] scummex/branches/gsoc2007-gameresbrowser/src
zbychs at users.sourceforge.net
zbychs at users.sourceforge.net
Wed Jul 11 15:09:31 CEST 2007
Revision: 28027
http://scummvm.svn.sourceforge.net/scummvm/?rev=28027&view=rev
Author: zbychs
Date: 2007-07-11 06:09:31 -0700 (Wed, 11 Jul 2007)
Log Message:
-----------
Changing the project structure.
The building is broken at the moment.
Last good version is 28025.
Added Paths:
-----------
scummex/branches/gsoc2007-gameresbrowser/src/browser/FileTypeRegistry.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/ftregistry.cpp
Removed Paths:
-------------
scummex/branches/gsoc2007-gameresbrowser/src/core/FileTypeRegistry.h
scummex/branches/gsoc2007-gameresbrowser/src/core/ftregistry.cpp
Copied: scummex/branches/gsoc2007-gameresbrowser/src/browser/FileTypeRegistry.h (from rev 28026, scummex/branches/gsoc2007-gameresbrowser/src/core/FileTypeRegistry.h)
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/FileTypeRegistry.h (rev 0)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/FileTypeRegistry.h 2007-07-11 13:09:31 UTC (rev 28027)
@@ -0,0 +1,54 @@
+/////////////////////////////////////////////////////////////////////////////
+// FileTypeRegistry.h
+//
+// Declares FileTypeRegistry
+// Plugins are registered into FileTypeRegistry by ObjectRegistry.
+//
+
+#pragma once
+#ifndef _FILE_TYPE_REGISTRY_H_
+#define _FILE_TYPE_REGISTRY_H_
+
+#include "plugin.h"
+
+#include "FileTypeRecognizer.h"
+
+#include <list>
+
+namespace Browser {
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// The FileTypeRegistry
+
+class VirtualFile;
+
+class FileTypeRegistry {
+public:
+ typedef std::list< RCPtr<BObject> > object_list;
+ object_list _recognizers;
+ object_list _resolvers;
+
+ void registerPlugins();
+
+ //return properly sorted list of fileTypes
+ RecognizedFileTypes recognizeFileType(VirtualFile* file);
+
+ guid_list resolveParsers(VirtualFile* file, RecognizedFileType& outFileType);
+
+ ResolvedFileTypeParsers resolveParsers(const BGUID& fileType);
+
+ static FileTypeRegistry* get();
+ static void release();
+private:
+ static FileTypeRegistry* _instance;
+ FileTypeRegistry() {}
+
+};
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+} // namespace Browser
+
+#endif /* _FILE_TYPE_REGISTRY_H_ */
Copied: scummex/branches/gsoc2007-gameresbrowser/src/browser/ftregistry.cpp (from rev 28026, scummex/branches/gsoc2007-gameresbrowser/src/core/ftregistry.cpp)
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/ftregistry.cpp (rev 0)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/ftregistry.cpp 2007-07-11 13:09:31 UTC (rev 28027)
@@ -0,0 +1,151 @@
+/////////////////////////////////////////////////////////////////////////////
+// FileTypeRegistry.cpp
+//
+// Declares FileTypeRegistry
+// Plugins are registered into FileTypeRegistry by ObjectRegistry.
+//
+
+#include "plugins_stdafx.h"
+
+#include "FileTypeRegistry.h"
+#include "ObjectRegistry.h"
+
+#include <algorithm>
+#include <vector>
+
+#include "debugmem.h"
+
+namespace Browser {
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// The FileTypeRegistry
+
+FileTypeRegistry* FileTypeRegistry::_instance = NULL;
+
+/*static*/ FileTypeRegistry* FileTypeRegistry::get() {
+ if (!_instance)
+ _instance = new FileTypeRegistry();
+
+ return _instance;
+}
+
+/*static*/ void FileTypeRegistry::release() {
+ if (_instance)
+ delete _instance;
+ _instance = NULL;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// Plugin registration
+
+void FileTypeRegistry::registerPlugins() {
+
+ std::list<const ObjectPlugin*> plugins;
+ std::list<const ObjectPlugin*>::const_iterator j;
+ object_list::iterator i;
+
+ plugins = ObjectRegistry::get()->findObjectsWithFlags(IS_FILE_TYPE_RECOGNIZER);
+ for (j = plugins.begin(); j != plugins.end(); ++j) {
+ const ObjectPlugin* oplug = *j;
+ const BGUID& objGUID = oplug->getObjectGUID();
+ for (i = _recognizers.begin(); i != _recognizers.end(); ++i) {
+ RCPtr<BObject> recognizer = *i;
+ if (recognizer->get_GUID() == objGUID)
+ goto skip_recognizer;
+ }
+ RCPtr<BObject> recognizer( oplug->newInstance() );
+ _recognizers.push_back(recognizer);
+skip_recognizer:
+ }
+
+ plugins = ObjectRegistry::get()->findObjectsWithFlags(IS_FILE_TYPE_RESOLVER);
+ for (j = plugins.begin(); j != plugins.end(); ++j) {
+ const ObjectPlugin* oplug = *j;
+ const BGUID& objGUID = oplug->getObjectGUID();
+ for (i = _resolvers.begin(); i != _resolvers.end(); ++i) {
+ RCPtr<BObject> resolver = *i;
+ if (resolver->get_GUID() == objGUID)
+ goto skip_resolver;
+ }
+ RCPtr<BObject> resolver( oplug->newInstance() );
+ _resolvers.push_back(resolver);
+skip_resolver:
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// File type recognition
+
+//return properly sorted list of fileTypes
+RecognizedFileTypes FileTypeRegistry::recognizeFileType(VirtualFile* file) {
+ RecognizedFileTypes fileTypes;
+
+ object_list::iterator i;
+ for (i = _recognizers.begin(); i != _recognizers.end(); ++i) {
+ BObject* obj = (*i).get();
+ FileTypeRecognizer* recognizer = dynamic_cast<FileTypeRecognizer*>(obj);
+ ASSERT(recognizer);
+ RecognizedFileType fileType = recognizer->recognize(file);
+ if (fileType.isOk())
+ fileTypes.push_back( fileType );
+ }
+
+ //FIXME: VC++'s STL can't sort std::list - Ughhh...
+ std::vector<RecognizedFileType> types( fileTypes.begin(), fileTypes.end() );
+ std::sort( types.begin(), types.end() );
+ RecognizedFileTypes outTypes( types.begin(), types.end() );
+
+ return outTypes;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+// Parser resolving
+
+guid_list FileTypeRegistry::resolveParsers(VirtualFile* file, RecognizedFileType& outFileType) {
+ RecognizedFileTypes fileTypes( recognizeFileType(file) );
+
+ RecognizedFileTypes::iterator i;
+ for (i = fileTypes.begin(); i != fileTypes.end(); ++i) {
+ BGUID fileType = i->getFileTypeGUID();
+
+ ResolvedFileTypeParsers parsers( resolveParsers(fileType) );
+ if (parsers.isOk()) {
+ outFileType = *i;
+ return parsers._parserGUIDs;
+ }
+ }
+
+ outFileType = RecognizedFileType::NotRecognized();
+ return guid_list();
+}
+
+ResolvedFileTypeParsers FileTypeRegistry::resolveParsers(const BGUID& fileType) {
+ ResolvedFileTypeParsers bestParsers(ResolvedFileTypeParsers::NoParsers());
+
+ object_list::iterator i;
+ for (i = _resolvers.begin(); i != _resolvers.end(); ++i) {
+ BObject* obj = (*i).get();
+ FileTypeParserResolver* resolver = dynamic_cast<FileTypeParserResolver*>(obj);
+ ASSERT(resolver);
+ ResolvedFileTypeParsers parsers = resolver->resolve(fileType);
+ if (parsers.isOk()) {
+ if (!bestParsers.isOk())
+ bestParsers = parsers;
+ if (parsers < bestParsers)
+ bestParsers = parsers;
+ if (bestParsers._priority == IDEAL_PARSERS)
+ return bestParsers;
+ }
+ }
+
+ return bestParsers;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+} // namespace Browser
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/core/FileTypeRegistry.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/FileTypeRegistry.h 2007-07-11 13:04:06 UTC (rev 28026)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/FileTypeRegistry.h 2007-07-11 13:09:31 UTC (rev 28027)
@@ -1,54 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// FileTypeRegistry.h
-//
-// Declares FileTypeRegistry
-// Plugins are registered into FileTypeRegistry by ObjectRegistry.
-//
-
-#pragma once
-#ifndef _FILE_TYPE_REGISTRY_H_
-#define _FILE_TYPE_REGISTRY_H_
-
-#include "plugin.h"
-
-#include "FileTypeRecognizer.h"
-
-#include <list>
-
-namespace Browser {
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-// The FileTypeRegistry
-
-class VirtualFile;
-
-class FileTypeRegistry {
-public:
- typedef std::list< RCPtr<BObject> > object_list;
- object_list _recognizers;
- object_list _resolvers;
-
- void registerPlugins();
-
- //return properly sorted list of fileTypes
- RecognizedFileTypes recognizeFileType(VirtualFile* file);
-
- guid_list resolveParsers(VirtualFile* file, RecognizedFileType& outFileType);
-
- ResolvedFileTypeParsers resolveParsers(const BGUID& fileType);
-
- static FileTypeRegistry* get();
- static void release();
-private:
- static FileTypeRegistry* _instance;
- FileTypeRegistry() {}
-
-};
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-} // namespace Browser
-
-#endif /* _FILE_TYPE_REGISTRY_H_ */
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/core/ftregistry.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/ftregistry.cpp 2007-07-11 13:04:06 UTC (rev 28026)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/ftregistry.cpp 2007-07-11 13:09:31 UTC (rev 28027)
@@ -1,151 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// FileTypeRegistry.cpp
-//
-// Declares FileTypeRegistry
-// Plugins are registered into FileTypeRegistry by ObjectRegistry.
-//
-
-#include "plugins_stdafx.h"
-
-#include "FileTypeRegistry.h"
-#include "ObjectRegistry.h"
-
-#include <algorithm>
-#include <vector>
-
-#include "debugmem.h"
-
-namespace Browser {
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-// The FileTypeRegistry
-
-FileTypeRegistry* FileTypeRegistry::_instance = NULL;
-
-/*static*/ FileTypeRegistry* FileTypeRegistry::get() {
- if (!_instance)
- _instance = new FileTypeRegistry();
-
- return _instance;
-}
-
-/*static*/ void FileTypeRegistry::release() {
- if (_instance)
- delete _instance;
- _instance = NULL;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-// Plugin registration
-
-void FileTypeRegistry::registerPlugins() {
-
- std::list<const ObjectPlugin*> plugins;
- std::list<const ObjectPlugin*>::const_iterator j;
- object_list::iterator i;
-
- plugins = ObjectRegistry::get()->findObjectsWithFlags(IS_FILE_TYPE_RECOGNIZER);
- for (j = plugins.begin(); j != plugins.end(); ++j) {
- const ObjectPlugin* oplug = *j;
- const BGUID& objGUID = oplug->getObjectGUID();
- for (i = _recognizers.begin(); i != _recognizers.end(); ++i) {
- RCPtr<BObject> recognizer = *i;
- if (recognizer->get_GUID() == objGUID)
- goto skip_recognizer;
- }
- RCPtr<BObject> recognizer( oplug->newInstance() );
- _recognizers.push_back(recognizer);
-skip_recognizer:
- }
-
- plugins = ObjectRegistry::get()->findObjectsWithFlags(IS_FILE_TYPE_RESOLVER);
- for (j = plugins.begin(); j != plugins.end(); ++j) {
- const ObjectPlugin* oplug = *j;
- const BGUID& objGUID = oplug->getObjectGUID();
- for (i = _resolvers.begin(); i != _resolvers.end(); ++i) {
- RCPtr<BObject> resolver = *i;
- if (resolver->get_GUID() == objGUID)
- goto skip_resolver;
- }
- RCPtr<BObject> resolver( oplug->newInstance() );
- _resolvers.push_back(resolver);
-skip_resolver:
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-// File type recognition
-
-//return properly sorted list of fileTypes
-RecognizedFileTypes FileTypeRegistry::recognizeFileType(VirtualFile* file) {
- RecognizedFileTypes fileTypes;
-
- object_list::iterator i;
- for (i = _recognizers.begin(); i != _recognizers.end(); ++i) {
- BObject* obj = (*i).get();
- FileTypeRecognizer* recognizer = dynamic_cast<FileTypeRecognizer*>(obj);
- ASSERT(recognizer);
- RecognizedFileType fileType = recognizer->recognize(file);
- if (fileType.isOk())
- fileTypes.push_back( fileType );
- }
-
- //FIXME: VC++'s STL can't sort std::list - Ughhh...
- std::vector<RecognizedFileType> types( fileTypes.begin(), fileTypes.end() );
- std::sort( types.begin(), types.end() );
- RecognizedFileTypes outTypes( types.begin(), types.end() );
-
- return outTypes;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-// Parser resolving
-
-guid_list FileTypeRegistry::resolveParsers(VirtualFile* file, RecognizedFileType& outFileType) {
- RecognizedFileTypes fileTypes( recognizeFileType(file) );
-
- RecognizedFileTypes::iterator i;
- for (i = fileTypes.begin(); i != fileTypes.end(); ++i) {
- BGUID fileType = i->getFileTypeGUID();
-
- ResolvedFileTypeParsers parsers( resolveParsers(fileType) );
- if (parsers.isOk()) {
- outFileType = *i;
- return parsers._parserGUIDs;
- }
- }
-
- outFileType = RecognizedFileType::NotRecognized();
- return guid_list();
-}
-
-ResolvedFileTypeParsers FileTypeRegistry::resolveParsers(const BGUID& fileType) {
- ResolvedFileTypeParsers bestParsers(ResolvedFileTypeParsers::NoParsers());
-
- object_list::iterator i;
- for (i = _resolvers.begin(); i != _resolvers.end(); ++i) {
- BObject* obj = (*i).get();
- FileTypeParserResolver* resolver = dynamic_cast<FileTypeParserResolver*>(obj);
- ASSERT(resolver);
- ResolvedFileTypeParsers parsers = resolver->resolve(fileType);
- if (parsers.isOk()) {
- if (!bestParsers.isOk())
- bestParsers = parsers;
- if (parsers < bestParsers)
- bestParsers = parsers;
- if (bestParsers._priority == IDEAL_PARSERS)
- return bestParsers;
- }
- }
-
- return bestParsers;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-} // namespace Browser
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list