Changeset 40
- Timestamp:
- 03/28/05 00:10:14 (4 years ago)
- Files:
-
- trunk/core/BasicTags.d (deleted)
- trunk/core/DspAttributes.d (deleted)
- trunk/core/DspParser.d (deleted)
- trunk/core/DspParserTag.d (deleted)
- trunk/core/DspServlet.d (deleted)
- trunk/core/DspServletContext.d (deleted)
- trunk/core/DspServletContextFactory.d (deleted)
- trunk/core/DspServletInterface.d (deleted)
- trunk/core/DspServletProvider.d (deleted)
- trunk/core/DspUri.d (deleted)
- trunk/core/IDspServletContext.d (deleted)
- trunk/core/LibraryCache.d (deleted)
- trunk/core/Parser.d (deleted)
- trunk/core/ParserTag.d (deleted)
- trunk/core/RequestMethodTags.d (deleted)
- trunk/core/ServletLibrary.d (deleted)
- trunk/core/ServletTags.d (deleted)
- trunk/core/Utils.d (modified) (2 diffs)
- trunk/core/dsp (added)
- trunk/core/parser (added)
- trunk/core/parser/Attributes.d (added)
- trunk/core/parser/DspParser.d (added)
- trunk/core/parser/DspParserTag.d (added)
- trunk/core/parser/Facets.d (added)
- trunk/core/parser/IParser.d (added)
- trunk/core/parser/Parser.d (added)
- trunk/core/parser/ParserTag.d (added)
- trunk/core/parser/_unittest (added)
- trunk/core/parser/_unittest/ServletTemplate.d (added)
- trunk/core/parser/_unittest/main.d (added)
- trunk/core/parser/_unittest/main.exe (added)
- trunk/core/parser/_unittest/unittest.dsp (added)
- trunk/core/servlet (added)
- trunk/core/servlet/ContextFactoryProxy.d (added)
- trunk/core/servlet/DspServer.d (added)
- trunk/core/servlet/DspUri.d (added)
- trunk/core/servlet/IContextFactory.d (added)
- trunk/core/servlet/IDspServletContext.d (added)
- trunk/core/servlet/IServlet.d (added)
- trunk/core/servlet/Servlet.d (added)
- trunk/core/servlet/ServletContext.d (added)
- trunk/core/servlet/ServletContextFactory.d (added)
- trunk/core/servlet/ServletLibrary.d (added)
- trunk/core/servlet/ServletLibraryDLLStub.d (added)
- trunk/core/servlet/ServletProvider.d (added)
- trunk/core/servlet/ServletProxy.d (added)
- trunk/core/tags (added)
- trunk/core/tags/Argument.d (added)
- trunk/core/tags/Attribute.d (added)
- trunk/core/tags/CData.d (added)
- trunk/core/tags/Classbody.d (added)
- trunk/core/tags/Code.d (added)
- trunk/core/tags/Comment.d (added)
- trunk/core/tags/Debug.d (added)
- trunk/core/tags/Default.d (added)
- trunk/core/tags/Dynamic.d (added)
- trunk/core/tags/GenericRequestMethod.d (added)
- trunk/core/tags/Import.d (added)
- trunk/core/tags/InCode.d (added)
- trunk/core/tags/Include.d (added)
- trunk/core/tags/InlineD.d (added)
- trunk/core/tags/OutCode.d (added)
- trunk/core/tags/Page.d (added)
- trunk/core/tags/RequestMethod.d (added)
- trunk/core/tags/Root.d (added)
- trunk/core/tags/ShorthandCode.d (added)
- trunk/core/tags/ShorthandInCode.d (added)
- trunk/core/tags/ShorthandOutCode.d (added)
- trunk/core/tags/ShorthandOutput.d (added)
- trunk/core/tags/Tag.d (added)
- trunk/core/tags/Version.d (added)
- trunk/core/tags/VersionElse.d (added)
- trunk/doc/DSPUserGuide.doc (modified) (previous)
- trunk/dspcore.d (added)
- trunk/expat/expat.d (modified) (1 diff)
- trunk/misc/DLLStub.d (modified) (3 diffs)
- trunk/misc/Exportable.d (modified) (2 diffs)
- trunk/misc/Finalizable.d (modified) (1 diff)
- trunk/misc/Library.d (modified) (4 diffs)
- trunk/misc/LibraryCache.d (modified) (4 diffs)
- trunk/misc/ObjectProxy.d (modified) (4 diffs)
- trunk/misc/TypeLibrary.d (modified) (4 diffs)
- trunk/misc/TypeLibrary.def (modified) (1 diff)
- trunk/misc/TypeLibraryDLLStub.d (modified) (5 diffs)
- trunk/server (deleted)
- trunk/server.d (added)
- trunk/sumac (added)
- trunk/sumac/Confignode.d (added)
- trunk/sumac/ConfigurableServerProxy.d (added)
- trunk/sumac/Configurator.d (added)
- trunk/sumac/IConfigurableServer.d (added)
- trunk/sumac/ObjectProvider.d (added)
- trunk/sumac/ServerManager.d (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/core/Utils.d
r37 r40 445 445 } 446 446 447 / +447 /* 448 448 debug{ 449 449 private import mango.io.Buffer; … … 481 481 } 482 482 } 483 +/483 */ trunk/expat/expat.d
r37 r40 25 25 module expat.expat; 26 26 27 version(build){ 28 pragma(nolink); 29 pragma(link,expat); 30 } 27 31 28 32 version(EXPAT_UTF16){ trunk/misc/DLLStub.d
r36 r40 44 44 import std.moduleinit; 45 45 46 void debugModuleCtor(){47 writefln("\n--MODULE INFO--\n");48 49 foreach(ModuleInfo info; _moduleinfo_array){50 writefln("%s", info.name);51 foreach(ModuleInfo imported; info.importedModules){52 writefln("\timport %s",imported.name);53 }54 }55 }56 57 46 extern (Windows) BOOL DllMain(HINSTANCE hInstance, ULONG ulReason, LPVOID pvReserved) 58 47 { … … 88 77 return true; 89 78 } 90 91 version(build){92 pragma(build_def, "LIBRARY 'typelib'");93 pragma(build_def, "DESCRIPTION 'D Type Library'");94 pragma(build_def, "EXETYPE NT");95 pragma(build_def, "SUBSYSTEM WINDOWS");96 pragma(build_def, "CODE PRELOAD DISCARDABLE");97 pragma(build_def, "DATA PRELOAD SINGLE");98 pragma(build_def, "EXPORTS");99 pragma(build_def, "__initalizeDll");100 pragma(build_def, "__finalizeDll");101 }102 79 } 103 80 else{ … … 105 82 } 106 83 84 85 // exports section 107 86 extern(C){ 108 87 export void __initalizeDll(void* gcHandle){ trunk/misc/Exportable.d
r36 r40 24 24 */ 25 25 module misc.Exportable; 26 26 27 27 interface IExportable{ 28 28 byte[] serialize(); … … 32 32 template ExportableAdapterMixin(){ 33 33 public byte[] serialize(){ 34 return null; 34 35 } 35 36 public void deserialize(byte[] data){ 36 37 } 37 38 } 38 39 39 40 // Performs a dynamic cast via classname, and expects an 'interface' reference 40 41 // as an input. trunk/misc/Finalizable.d
r36 r40 23 23 OTHER DEALINGS IN THE SOFTWARE. 24 24 */ 25 module misc. finalizable;25 module misc.Finalizable; 26 26 27 27 interface IFinalizable{ trunk/misc/Library.d
r36 r40 24 24 */ 25 25 26 module misc. library;26 module misc.Library; 27 27 private import std.string; 28 28 private import std.gc; … … 114 114 /*** Library ***/ 115 115 116 alias char[] function() GetExceptionHandle; 117 116 118 class Library: LibraryBase{ 117 119 private LibraryModule lib; 118 120 private char[] libraryPath; 121 122 protected GetExceptionHandle getExceptionImpl; 119 123 120 124 public LibraryNotificationDelegate[] onUnload; … … 157 161 if(dllInit){ 158 162 dllInit(std.gc.getGCHandle()); 159 } 163 } 164 getExceptionImpl = cast(GetExceptionHandle)(getSymbol("__getException")); 160 165 } 161 166 } … … 179 184 return(getSymbolImpl(lib,symbolName)); 180 185 } 186 187 public Exception getException(){ 188 if(getExceptionImpl){ 189 return new Exception(getExceptionImpl().dup); 190 } 191 return null; 192 } 181 193 } 182 194 trunk/misc/LibraryCache.d
r36 r40 26 26 private import misc.Library; 27 27 private import misc.Finalizable; 28 private import std.string;29 private import std.gc;30 28 31 29 /*** LibraryCache *** … … 43 41 44 42 class LibraryCache: IFinalizable{ 45 Library[char[]] cache;43 protected Library[char[]] cache; 46 44 47 45 public this(){ … … 65 63 } 66 64 67 protected synchronizedvoid unloadLibrary(Library lib){65 protected void unloadLibrary(Library lib){ 68 66 cache[lib.getPath()] = null; 69 67 } 70 68 71 public synchronizedLibrary load(char[] libPath,Library function(char[]) createLibrary){69 public Library load(char[] libPath,Library function(char[]) createLibrary){ 72 70 Library lib; 73 71 lib = cache[libPath]; … … 86 84 } 87 85 88 public synchronizedLibrary load(char[] libPath){86 public Library load(char[] libPath){ 89 87 return this.load(libPath,&Library.create); 90 88 } 91 89 92 90 // perform an operation, 'callback', on each entry in the cache 93 public synchronizedvoid ForEach(bit delegate(Library) callback){91 public void ForEach(bit delegate(Library) callback){ 94 92 foreach(Library lib; cache){ 95 93 if(lib && callback(lib)) break; trunk/misc/ObjectProxy.d
r36 r40 25 25 module misc.ObjectProxy; 26 26 27 private import misc.Exportable; 28 private import misc.TypeLibrary; 27 private import misc.Exportable, 28 misc.Library, 29 misc.TypeLibrary; 29 30 30 31 class ExportableObjectProxy{ … … 32 33 char[] remoteClass; 33 34 byte[] serializationData; 35 GetExceptionHandle getExceptionImpl; 34 36 35 public this(IExportable remote,char[] typename ){37 public this(IExportable remote,char[] typename,GetExceptionHandle getExceptionImpl){ 36 38 this.remote = remote; 37 39 this.remoteClass = typename; 38 40 this.serializationData = null; 41 this.getExceptionImpl = getExceptionImpl; 39 42 } 40 43 … … 65 68 return this.remote; 66 69 } 70 71 public void processCallException(){ 72 if(getExceptionImpl){ 73 char[] e = getExceptionImpl(); 74 //TODO: should try to dynamically recreate the type of exception object here 75 // since the object re-thrown is just a plain 'ol "exception" 76 if(e) throw new Exception(e.dup); 77 } 78 } 67 79 } 68 80 … … 77 89 } 78 90 protected TInterface getInstance(){ 79 IExportable remote = __proxy.getInstance();91 IExportable remote = this.__proxy.getInstance(); 80 92 return export_cast!(TInterface)(remote); 81 93 } 82 94 protected void processCallException(){ 95 this.__proxy.processCallException(); 96 } 83 97 } trunk/misc/TypeLibrary.d
r36 r40 24 24 */ 25 25 26 module misc. typeLibrary;26 module misc.TypeLibrary; 27 27 28 28 private import misc.Library; 29 29 private import misc.Exportable; 30 30 private import misc.ObjectProxy; 31 private import misc.Util;32 33 static this(){34 }35 31 36 32 alias TypeInfo[char[]] function() GetTypesHandle; 37 33 alias void* function(char[] typename) GetInstanceHandle; 38 34 alias void function(IExportable obj) DestroyObjectHandle; 39 40 35 41 36 /*** TypeLibrary ***/ … … 71 66 throw new LibraryException(this,"could not locate type library handles"); 72 67 } 68 else{ 69 printf("load complete!\n"); 70 } 73 71 } 74 72 … … 82 80 if(!remote) return null; 83 81 84 ExportableObjectProxy proxy = new ExportableObjectProxy(remote,typename );82 ExportableObjectProxy proxy = new ExportableObjectProxy(remote,typename,getExceptionImpl); 85 83 this.proxies[proxy] = proxy; 86 84 return(proxy); … … 106 104 public void destroyObject(ExportableObjectProxy proxy){ 107 105 destroyObjectImpl(proxy.getInstance()); 106 this.proxies[proxy] = null; //TODO: remove from list 108 107 } 109 108 } trunk/misc/TypeLibrary.def
r36 r40 6 6 CODE PRELOAD DISCARDABLE 7 7 DATA PRELOAD SINGLE 8 9 EXPORTS trunk/misc/TypeLibraryDLLStub.d
r36 r40 26 26 module misc.TypeLibraryDLLStub; 27 27 28 import misc.Exportable; 29 import misc.SystemFinalizer; 28 private import misc.Exportable; 29 private import misc.SystemFinalizer; 30 private import misc.DLLStub; 30 31 31 32 /*** stub variables ***/ … … 57 58 IExportable getInstanceImpl(char[] typename){ 58 59 IExportable obj = null; 59 60 61 //writefln("TypeLibraryDLLStub.getInstanceImpl(%s)",typename); 62 60 63 if(typename in typeConstructors){ 61 64 obj = typeConstructors[typename](); … … 66 69 } 67 70 } 71 //else{ 72 // writefln("failed: %s not in typeConstructors",typename); 73 //} 68 74 69 75 return(obj); … … 95 101 } 96 102 97 version(Windows) version(build){98 pragma (build_def, "getTypes");99 pragma (build_def, "getInstance");100 pragma (build_def, "destroyObject");101 }102 103 103 /*** CtorAdapter ***/ 104 104 class CtorAdapter{ … … 113 113 } 114 114 } 115 116 private import std.stdio; 115 117 116 118 /*** exportType ***/
