Sponsored Content
Top Forums Programming Module Support! How does it work? Post 302075047 by farhan00 on Tuesday 30th of May 2006 02:54:58 AM
Old 05-30-2006
Module Support! How does it work?

ey everyone,

I have been working on an application for a while, and would like others to
be able to add modules for it. The problem is, I don't know how to implement
them.

I am using the dlopen() library set. I understand how to load modules into t
he program and how to execute the code. The problem is, I want these modules
to be able to modify ANY part of the program. For example, if there are 100
functions in my application, I want the program to be able to modify any si
ngle one of those functions to do something different. Is there a way to do
this, without having to make every single function in my code a function poi
nter?

Btw, im writing this on Unix :-)

Thanks a lot!
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Script doesn't work, but commands inside work

Howdie everyone... I have a shell script RemoveFiles.sh Inside this file, it only has two commands as below: rm -f ../../reportToday/temp/* rm -f ../../report/* My problem is that when i execute this script, nothing happened. Files remained unremoved. I don't see any error message as it... (2 Replies)
Discussion started by: cheongww
2 Replies

2. Solaris

Apache on Solaris10 configured with loadable module support?

I have Apache 2 webserver as delivered with the Solaris 10 installation. How to verify if Apache is configured with loadable module support? Or if needs to be recompiled with loadable module support. (2 Replies)
Discussion started by: kavera
2 Replies

3. Linux

How to convert Linux Kernel built-in module into a loadable module

Hi all, I am working on USB data monitoring on Fedora Core 9. Kernel 2.6.25 has a built-in module (the one that isn't loadable, but compiles and links statically with the kernel during compilation) to snoop USB data. It is in <kernel_source_code>/drivers/usb/mon/. I need to know if I can... (0 Replies)
Discussion started by: anitemp
0 Replies

4. Solaris

Config reader module in Sun MC Agent not work in E2900

Hi men, Have you ever meet this error ? I install full Sun MC 4.0 packages (+ Add ons) exception of Sun Midrange Platform Administration because i don't know how to configure it Then all other servers are ok, only E2900 servers have Config reader module error: Data Acquisition error I... (12 Replies)
Discussion started by: tien86
12 Replies

5. Shell Programming and Scripting

Perl variables inside Net::Telnet::Cisco Module doesn't work

I am writing perl script to configure Cisco device but Variables inside Net::Telnet::Cisco Module doesn't work and passed to device without resolving. Please advise. here is a sample of script: use Net::Telnet::Cisco; $device = "10.14.199.1"; ($o1, $o2, $o3, $o4) = split(/\./,$device);... (5 Replies)
Discussion started by: ahmed_zaher
5 Replies

6. Red Hat

PAM module pam_passwdqc module

Hello friends Today i have changed my passwd policy for strong password Everything is working correctly but when i changed my password , it did not ask me my old password my /etc/pam.d/system-auth file is (only passwdqc.so module line) password required pam_passwdqc.so retry=3... (0 Replies)
Discussion started by: rink
0 Replies

7. Shell Programming and Scripting

My script work on Linux but not work in sunos.

My script work on Linux but not work in sun os. my script. logFiles="sentLog1.log sentLog2.log" intial_time="0 0" logLocation="/usr/local/tomcat/logs/" sleepTime=600 failMessage=":: $(tput bold)Log not update$(tput rmso) = " successMessage="OK" arr=($logFiles)... (7 Replies)
Discussion started by: ooilinlove
7 Replies

8. Red Hat

Does the pam_pwdfile module support clear text passwords?

I need to utilize pam_pwdfile in order to authenticate virtual users in vsftpd. I know I can utilize htpasswd2 -m to create a password file however it is vital since I am administrating several machines in our organization that the password generated be in clear text. Does anyone on here know if... (10 Replies)
Discussion started by: colbyshores
10 Replies

9. IP Networking

Discussion at work, would a router work pluging a cable in wan1 and lan1?

hi all. and sorry for the random question, but this sparkled a raging flame-war at work and i want more points of view situation a router, with linux of some sort, dhcp client requesting for ip in wan1 (as usual with wan ports) dhcp server listening in lan1, and assigning ip (as usual... (9 Replies)
Discussion started by: broli
9 Replies
Module::Package(3pm)					User Contributed Perl Documentation				      Module::Package(3pm)

NAME
Module::Package - Postmodern Perl Module Packaging SYNOPSIS
In your "Makefile.PL": use inc::Module::Package; or one of these invocations: # These two are functionally the same as above: use inc::Module::Package ':basic'; use inc::Module::Package 'Plugin:basic'; # With Module::Package::Catalyst plugin options use inc::Module::Package 'Catalyst'; # With Module::Package::Catalyst::common inline plugin class use inc::Module::Package 'Catalyst:common'; # Pass options to the Module::Package::Ingy::modern constructor use inc::Module::Package 'Ingy:modern', option1 => 'value1', option2 => 'value2'; DESCRIPTION
This module is a dropin replacement for Module::Install. It does everything Module::Install does, but just a bit better. Actually this module is simply a wrapper around Module::Install. It attempts to drastically reduce what goes in a Makefile.PL, while at the same time, fixing many of the problems that people have had with Module::Install (and other module frameworks) over the years. PROPAGANDA
Module::Install took Makefile.PL authoring from a black art to a small set of powerful and reusable instructions. It allowed packaging gurus to take their fancy tricks and make them into one liners for the rest of us. As the number of plugins has grown over the years, using Module::Install has itself become a bit of a black art. It's become hard to know all the latest tricks, put them in the correct order, and make sure you always use the correct sets for your various Perl modules. Added to this is the fact that there are a few problems in Module::Install design and general usage that are hard to fix and deploy with certainty that it will work in all cases. This is where Module::Package steps in. Module::Package is the next logical step in Makefile.PL authoring. It allows gurus to create well tested sets of Module::Install directives, and lets the rest of us use Makefile.PLs that are one line long. For example: use inc::Module::Package 'Catalyst:widget'; could be the one line Makefile.PL for a Catalyst widget (whatever that is) module distribution. Assuming someone creates a module called Module::Package::Catalyst, with an inline class called Module::Package::Catalyst::widget that inherited from Module::Package::Plugin. Module::Package is pragmatic. Even though you can do everything in one line, you are still able to make any Module::Install calls as usual. Also you can pass parameters to the Module::Package plugin. use inc::Module::Package 'Catalyst:widget', deps_list => 0, some_cataylst_thing => '...'; # All Module::Install plugins still work! requires 'Some::Module' => 3.14; This allows Module::Package::Catalyst to be configurable, even on the properties like "deps_list" that are inherited from Module::Package::Plugin. The point here is that with Module::Package, module packaging just got a whole lot more powerful and simple. A rare combination! FEATURES
Module::Package has many advantages over vanilla Module::Install. Smaller Makefile.PL Files In the majority of cases you can reduce your Makefile.PL to a single command. The core Module::Package invokes the Module::Install plugins that it thinks you want. You can also name the Module::Package plugin that does exactly the plugins you want. Reduces Module::Install Bloat Somewhere Module::Install development went awry, and allowed modules that only have useful code for an author, to be bundled into a distribution. Over time, this has created a lot of wasted space on CPAN mirrors. Module::Package fixes this. Collaborator Plugin Discovery An increasing problem with Module::Install is that when people check out your module source from a repository, they don't know which Module::Install plugin modules you have used. That's because the Makefile.PL only requires the function names, not the module names that they come from. Many people have realized this problem, and worked around it in various suboptimal ways. Module::Package manages this problem for you. Feature Grouping and Reuse Module::Install has lots of plugins. Although it is possible with plain Module::Install, nobody seems to make plugins that group other plugins. This also might introduce subtle problems of using groups with other groups. Module::Package has object oriented plugins whose main purpose is to create these groups. They inherit base functionality, subclass it to their design goals and can define options for the user to tweak how they will operate. USAGE
The basic anatomy of a Makefile.PL call to Module::Package is: use inc::Module::Package 'PluginName:flavor <version>', $option1 => $value1; The "inc::Module::Package" part uses the Module::Install "inc" bootstrapping trick. "PluginName:flavor" (note the single ':') resolves to the inline class "Module::Package::PluginName::flavor", within the module "Module::Package::PluginName". Module::Package::PluginName::flavor must be a subclass of Module::Package::Plugin. An optional version can be used after the plugin name. Optional key/value pairs can follow the Plugin specification. They are used to pass information to the plugin. See Plugin docs for more details. If ":flavor" is omitted, the class Module::Package::PluginName is used. The idea is that you can create a single module with many different plugin styles. If "PluginName" is omitted, then ":flavor" is used against Module::Package::Plugin. These are a set of common plugin classes that you can use. If "PluginName:flavor" is omitted altogether, it is the same as saying 'Plugin:basic'. Note that you need to specify the ':basic' plugin if you want to also pass it options. STATUS
This is still an early release. We are still shaking out the bugs. You might want to hold off for a bit longer before using Module::Package for important modules. SEE ALSO
o Module::Package::Plugin o Module::Install::Package o Module::Package::Tutorial AUTHOR
Ingy doet Net <ingy@cpan.org> COPYRIGHT AND LICENSE
Copyright (c) 2011. Ingy doet Net. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2011-10-06 Module::Package(3pm)
All times are GMT -4. The time now is 02:30 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy