package Aw;
use strict;
use Carp;
use vars qw($VERSION $VERSION_NAME @ISA @EXPORT @EXPORT_OK $AUTOLOAD $DefaultBrokerName $DefaultBrokerHost $SPAM);
$ENV{LD_LIBRARY_PATH} .= ':/opt/active40/lib:/opt/active40/samples/adapter_devkit/c_lib/'; # ':./blib/arch/auto/Aw';
# $ENV{'LD_PRELOAD'} = '/usr/local/users/yacob/Aw-0.12/blib/arch/auto/Aw.so';
require Exporter;
require DynaLoader;
require AutoLoader;
@ISA = qw(Exporter DynaLoader);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@EXPORT = qw(
AW_AUTO_SIZE
AW_ACK_NONE
AW_ACK_AUTOMATIC
AW_ACK_THROUGH
AW_ACK_SELECTIVE
AW_CONNECT_STATE_CONNECTED
AW_CONNECT_STATE_DISCONNECTED
AW_CONNECT_STATE_RECONNECTED
AW_ENCRYPT_LEVEL_NO_ENCRYPTION
AW_ENCRYPT_LEVEL_US_DOMESTIC
AW_ENCRYPT_LEVEL_US_EXPORT
AW_ENTIRE_SEQUENCE
AW_ERROR_BAD_STATE
AW_ERROR_BROKER_EXISTS
AW_ERROR_BROKER_FAILURE
AW_ERROR_BROKER_NOT_RUNNING
AW_ERROR_CLIENT_CONTENTION
AW_ERROR_CLIENT_EXISTS
AW_ERROR_CLIENT_GROUP_EXISTS
AW_ERROR_COMM_FAILURE
AW_ERROR_CONNECTION_CLOSED
AW_ERROR_CORRUPT
AW_ERROR_DEPENDENCY
AW_ERROR_FIELD_NOT_FOUND
AW_ERROR_FIELD_TYPE_MISMATCH
AW_ERROR_FILE_NOT_FOUND
AW_ERROR_FILTER_PARSE
AW_ERROR_FILTER_RUNTIME
AW_ERROR_FORMAT
AW_ERROR_HOST_NOT_FOUND
AW_ERROR_INCOMPATIBLE_VERSION
AW_ERROR_INPUT_PARSE
AW_ERROR_INTERRUPTED
AW_ERROR_INVALID_ACCESS_LIST
AW_ERROR_INVALID_ACKNOWLEDGEMENT
AW_ERROR_INVALID_BROKER_NAME
AW_ERROR_INVALID_CLIENT
AW_ERROR_INVALID_CLIENT_GROUP_NAME
AW_ERROR_INVALID_CLIENT_ID
AW_ERROR_INVALID_DESCRIPTOR
AW_ERROR_INVALID_EVENT
AW_ERROR_INVALID_EVENT_TYPE_NAME
AW_ERROR_INVALID_FIELD_NAME
AW_ERROR_INVALID_FILTER
AW_ERROR_INVALID_LICENSE
AW_ERROR_INVALID_LOG_CONFIG
AW_ERROR_INVALID_NAME
AW_ERROR_INVALID_PERMISSION
AW_ERROR_INVALID_PLATFORM_KEY
AW_ERROR_INVALID_PORT
AW_ERROR_INVALID_SUBSCRIPTION
AW_ERROR_INVALID_TERRITORY_NAME
AW_ERROR_INVALID_TYPE
AW_ERROR_INVALID_TYPECACHE
AW_ERROR_INVALID_TYPEDEF
AW_ERROR_IN_TERRITORY
AW_ERROR_NOT_IMPLEMENTED
AW_ERROR_NOT_IN_TERRITORY
AW_ERROR_NO_MEMORY
AW_ERROR_NO_PERMISSION
AW_ERROR_NULL_PARAM
AW_ERROR_OUT_OF_RANGE
AW_ERROR_PROTOCOL
AW_ERROR_SECURITY
AW_ERROR_SUBSCRIPTION_EXISTS
AW_ERROR_TIMEOUT
AW_ERROR_UNKNOWN
AW_ERROR_UNKNOWN_BROKER_NAME
AW_ERROR_UNKNOWN_CLIENT_GROUP
AW_ERROR_UNKNOWN_CLIENT_ID
AW_ERROR_UNKNOWN_EVENT_TYPE
AW_ERROR_UNKNOWN_INFOSET
AW_ERROR_UNKNOWN_KEY
AW_ERROR_UNKNOWN_NAME
AW_ERROR_UNKNOWN_SERVER
AW_ERROR_UNKNOWN_SESSION_ID
AW_ERROR_UNKNOWN_TERRITORY
AW_INFINITE
AW_NO_ERROR
AW_NO_SHARE_LIMIT
AW_PLATFORM_ANY
AW_PLATFORM_HPUX
AW_PLATFORM_IRIX
AW_PLATFORM_SOLARIS
AW_PLATFORM_WINDOWS
AW_REPLY_FLAG_CONTINUE
AW_REPLY_FLAG_END
AW_REPLY_FLAG_START
AW_REPLY_FLAG_START_AND_END
AW_RETRIEVE_ALL
AW_STORAGE_GUARANTEED
AW_STORAGE_PERSISTENT
AW_STORAGE_VOLATILE
AW_TRANSACTION_LEVEL_ANY
AW_TRANSACTION_LEVEL_BASIC
AW_TRANSACTION_LEVEL_CONVERSATIONAL
AW_TRANSACTION_LEVEL_NONE
AW_TRANSACTION_LEVEL_PSEUDO
AW_TRANSACTION_MODE_COMMIT
AW_TRANSACTION_MODE_ROLLBACK
AW_TRANSACTION_MODE_SAVEPOINT
AW_VALIDATE_BAD_LICENSE
AW_VALIDATE_BAD_PLATFORM
AW_VALIDATE_BAD_PRODUCT
AW_VALIDATE_BAD_VERSION
AW_VALIDATE_EXPIRED
AW_VALIDATE_OKAY
AW_VERSION
DEFAULT_TRANSACTION_TIMEOUT
FIELD_TYPE_BOOLEAN
FIELD_TYPE_BYTE
FIELD_TYPE_CHAR
FIELD_TYPE_DATE
FIELD_TYPE_DOUBLE
FIELD_TYPE_EVENT
FIELD_TYPE_FLOAT
FIELD_TYPE_INT
FIELD_TYPE_LONG
FIELD_TYPE_SEQUENCE
FIELD_TYPE_SHORT
FIELD_TYPE_STRING
FIELD_TYPE_STRUCT
FIELD_TYPE_UNICODE_CHAR
FIELD_TYPE_UNICODE_STRING
FIELD_TYPE_UNKNOWN
CAT_BROKER
CAT_ADAPTER
CAT_MONITOR
CAT_SYSTEM
CAT_APPLICATION
CAT_KERNEL
CAT_TIMEOUT
CAT_DEBUG
CAT_FILLER9
CAT_FILLER10
MSG_GET_FAMILY_NAMES
MSG_RETRIEVE_EVENT_TYPES
ERR_BAD_LICENSE
ERR_LICENSE_BAD_PLATFORM
ERR_LICENSE_EXPIRED
ERR_LICENSE_BAD_VERSION
ERR_LICENSE_BAD_PRODUCT
MSG_NO_REFRESH_FAMILY
MSG_NOTIFICATION_NOT_SUPPORTED
MSG_NO_CAN_SUBSCRIBE
MSG_NO_CAN_PUBLISH_REPLY
ERR_LICENSE_WILL_EXPIRE
ERR_PUBLISH_ADAPTER_ERROR
ERR_PUBLISH_STATUS
MSG_DELIVER_STATUS
ERR_CREATE_CLIENT
ERR_SSL_DESCRIPTOR
ERR_ADAPTER_SUBS
ERR_GET_EVENTS
ERR_PANIC
MSG_CREATE_EVENT
MSG_SUBSCRIPTION_ERROR
ERR_SUBSCRIPTION_ERROR
MSG_PUBLISH_ERROR
MSG_DELIVER_ERROR
MSG_DELIVER_REPLY_ERROR
MSG_INFOSET_ENTRY_MISSING
MSG_INFOSET_ENTRY_ERROR
MSG_FIELD_SET_ERROR
MSG_FIELD_SET_NOT_SUPPORTED
MSG_GET_EVENT_FIELD
MSG_SET_EVENT_FIELD
MSG_FORMAT_ERROR
MSG_NO_CAN_SUBSCRIBE_REPLY
MSG_NO_CAN_PUBLISH
MSG_NO_TYPE_DEF
MSG_NO_TYPE_DEF_REPLY
ERR_GET_ADAPTER_INFO
GENERIC_ALERT
GENERIC_WARNING
GENERIC_INFO
MSG_PUBLISH_REPLY_ERROR
MSG_FORWARD_TO_SESSION
MSG_FORWARD_SET_FIELDS
MSG_FIELD_SET_NO_FORMAT
PLACE_HOLDER38
PLACE_HOLDER37
PLACE_HOLDER36
PLACE_HOLDER35
PLACE_HOLDER34
FORWARD_ERROR_REQUEST
MSG_TRANSACTION_NOACK
MSG_TRANSACTION_COMMIT_MISSING
INFO_ADD_NOTIFY_EVENT
INFO_ADD_REQUEST_EVENT
INFO_RECEIVED_REQUEST
INFO_TEST_BROKER
INFO_PROCESS_PUBLICATION
INFO_FORWARD_REQUEST
INFO_CLEANUP_EVENTTYPE
MSG_NO_TRANS_ID
MSG_TRANS_LEVEL_MISMATCH
MSG_TRANS_NOT_ACTIVE
MSG_NO_TRANS_MODE
MSG_TRANS_MODE_NOT_SUPPORTED
MSG_TRANSACTION_TIMEOUT
MSG_TRANSACTION_MODIFIED
PLACE_HOLDER16
PLACE_HOLDER15
PLACE_HOLDER14
PLACE_HOLDER13
PLACE_HOLDER12
PLACE_HOLDER11
PLACE_HOLDER10
PLACE_HOLDER9
PLACE_HOLDER8
PLACE_HOLDER7
PLACE_HOLDER6
PLACE_HOLDER5
PLACE_HOLDER4
PLACE_HOLDER3
PLACE_HOLDER2
PLACE_HOLDER1
);
$VERSION = '0.15.0';
$VERSION_NAME = 'Tadpole Samurai';
$DefaultBrokerHost = 'localhost';
$DefaultBrokerName = 'Broker #1';
$SPAM = 0;
sub import {
my $pkg = shift;
for ( my $i = 0; $i <= $#_; $i++ ) {
$SPAM = 0 if ( $_[$i] =~ /^nospam$/i );
}
setDefaultBroker ( @_ ) if ( @_ );
Aw->export_to_level (1, $pkg, @EXPORT); # this works too...
#
# Don't do this! Resetting Exporter::ExportLevel _can_ hose other
# packages using Exporter (such as POSIX, Data::Dumper).
#
# $Exporter::ExportLevel = 1;
# Exporter::import ($pkg, @EXPORT);
}
sub setDefaultBroker {
my ( $name, $host ) = ($#_) ? ($_[0], $_[1]) : split ( "@", $_[0] );
$DefaultBrokerName = $name if ($name);
$DefaultBrokerHost = $host if ($host);
1;
}
sub setSpam {
$SPAM = $_[0];
}
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
# XS function. If a constant is not found then control is passed
# to the AUTOLOAD in AutoLoader.
my $constname;
($constname = $AUTOLOAD) =~ s/.*:://;
my $val = constant($constname, @_ ? $_[0] : 0);
if ($! != 0) {
if ($! =~ /Invalid/) {
$AutoLoader::AUTOLOAD = $AUTOLOAD;
goto &AutoLoader::AUTOLOAD;
}
else {
croak "Your vendor has not defined Aw macro $constname";
}
}
eval "sub $AUTOLOAD { $val }";
goto &$AUTOLOAD;
}
bootstrap Aw $VERSION;
# Preloaded methods go here.
# Autoload methods go after =cut, and are processed by the autosplit program.
1;
__END__
=head1 NAME
Aw - Perl extension for the ActiveWorks C Application Development Kit
=head1 SYNOPSIS
use Aw;
require Aw::Adapter;
require Aw::Event;
my %properties = (
clientId => 'TimeAdapter',
broker => "test\@active:7449",
adapterId => 0,
debug => 1,
clientGroup => 'devkitAdapter',
adapterType => 'Adapter40',
messageCatalog => 'time_adapter'
);
my $adapter = new Aw::Adapter ( \%properties ) ;
my $event = new Aw::Event;
=head1 DESCRIPTION
A Java like interface to the CADK thru Perl.
=head1 Exported Constants
Everything in the CADK include files I<should> be exported as constants.
=head1 AUTHOR
Daniel Yacob Mekonnen, L<Yacob@RCN.Com|mailto:Yacob@RCN.Com>
=head1 SEE ALSO
S<perl(1). ActiveWorks Supplied Documentation>
=cut