Documentation fix for unloadAll and example for loading of a shared library (called loadCLib).

This commit is contained in:
lemmih 2005-05-20 02:02:14 +00:00
parent a0b688a660
commit dcf8719ee5
6 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1,4 @@
TEST= unloadAll/null
EXTRA_OBJS=Null.o Dep.o
TOP=../../..
include ../../build.mk

View File

@ -0,0 +1,12 @@
module Null ( resource ) where
import API
import Data.Dynamic
import Prelude hiding (null)
import Graphics.Rendering.OpenGL
resource = null
-- ! this has to be special: it can't be overridden by the user.
resource_dyn :: Dynamic
resource_dyn = toDyn resource

View File

@ -0,0 +1,12 @@
{-# OPTIONS -fglasgow-exts #-}
module API where
import Data.Dynamic
data Null = Null { a, b :: Int }
deriving (Typeable, Show)
null :: Null
null = Null { a = 42 , b = 1 }

View File

@ -0,0 +1,11 @@
import System.Plugins
import API
-- an example where we just want to load an object and run it
main = do
m_v <- load_ "../Null.o" ["../api",".."] "resource"
case m_v of
LoadFailure err -> error (unlines err)
LoadSuccess m v -> do putStrLn ( show (a v) ) ; unload m

View File

@ -0,0 +1 @@
42

View File

@ -9,7 +9,7 @@ main = do
t <- load_ "../Dep.o" ["../api"] "resource" t <- load_ "../Dep.o" ["../api"] "resource"
case m_v of case m_v of
LoadFailure err -> error (unlines err) LoadFailure err -> error (unlines err)
LoadSuccess m v -> do putStrLn ( show (a v) ) ; unloadAll m LoadSuccess m v -> do putStrLn ( show (a v) ) ; unloadAll m -- unloads Null.o but not Dep.o since we're still using it.
case t of case t of
LoadFailure err -> error (unlines err) LoadFailure err -> error (unlines err)
LoadSuccess m v -> do putStrLn ( show (a v) ) ; unloadAll m LoadSuccess m v -> do putStrLn ( show (a v) ) ; unloadAll m