[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-chat
Subject:    'Base class' shared libraries in C?
From:       Jonathon McKitrick <jcm () FreeBSD-uk ! eu ! org>
Date:       2005-03-29 13:44:35
Message-ID: 20050329134435.GA89346 () dogma ! freebsd-uk ! eu ! org
[Download RAW message or body]


Hi all,

I am trying to implement some C++ functionality in C.

Suppose I have several libraries that share behavior and properties, such as
version, working directory, and so on.  I want other libraries to extend
this behavior without having to duplicate any code.  For instance:

typedef struct base
{
	char version[32];
	char path[32];
} base_t;

typedef struct foo
{
	base_t *base;
	int data;
} foo_t;

typedef struct bar
{
	base_t *base;
	int data;
} bar_t;

lib-base.so:
	base_get_version(base_t *, char *);
	base_get_path(base_t *, char *);

lib-derived-foo.so:
	foo_one_method(foo_t *, int data);
	foo_two_method(foo_t *, int data);

lib-derived-bar.so:
	bar_one_method(bar_t *, int data);
	bar_two_method(bar_t *, int data);

I want the derived modules to link with the base library, so that my
application can link with only the derived modules and still be able to call
the base functions without having to link to that library or call 'wrapper'
functions in the derived modules.

Is there a way to do this?

jm
-- 
_______________________________________________
freebsd-chat@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-chat
To unsubscribe, send any mail to "freebsd-chat-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic