Net-Drizzle
view release on metacpan or search on metacpan
Connection.xs view on Meta::CPAN
#include "net_drizzle.h"
=head1 NAME
Net::Drizzle::Connection - Connection object for Net::Drizzle
=head1 METHODS
=over 4
=cut
MODULE = Net::Drizzle::Connection PACKAGE = Net::Drizzle::Connection
PROTOTYPES: DISABLE
VERSIONCHECK: DISABLE
=item my $con = Net::Drizzle::Connection->new();
Create new instance of Net::Drizzle::Connection.
=cut
SV*
Net::Drizzle::Connection::new()
CODE:
PERL_UNUSED_VAR(CLASS);
drizzle_con_st * con;
SV * drizzle = _create_drizzle();
if ((con = drizzle_con_create(GET_DRIZZLE(drizzle), NULL)) == NULL) {
Perl_croak(aTHX_ "drizzle_con_create:NULL\n");
}
RETVAL = _create_con(drizzle, con);
OUTPUT:
RETVAL
=item my ($ret, $result) = $con->query('select * from foo');
Send query to server.
=cut
void
query(SV*self, SV*query_sv)
PPCODE:
dTARGET;
net_con * con = XS_STATE(net_con*, self);
STRLEN query_len;
const char * query_c = SvPV_const(query_sv, query_len);
drizzle_return_t ret;
drizzle_result_st *result = drizzle_query(con->con, NULL, query_c, query_len, &ret);
XPUSHi(ret);
mXPUSHs(_create_result(self, NULL, result));
XSRETURN(2);
=item $con->drizzle()
Get the instance of Net::Drizzle that the connection belongs to.
=cut
SV*
drizzle(net_con* self)
CODE:
RETVAL = SvREFCNT_inc(self->drizzle);
OUTPUT:
RETVAL
=item $con->close();
Close server connection.
=cut
void
close(net_con* self)
CODE:
drizzle_con_close(self->con);
=item $con->connect()
Connect to server.
=cut
int
connect(net_con* con)
CODE:
drizzle_return_t ret = drizzle_con_connect(con->con);
if (ret != DRIZZLE_RETURN_OK) {
drizzle_st *drizzle = drizzle_con_drizzle(con->con);
Perl_croak(aTHX_ "drizzle_con_connect:%s\n", drizzle_error(drizzle));
}
RETVAL = ret;
OUTPUT:
RETVAL
=item $con->set_revents($revents);
Set events that are ready for a connection. This is used with the external
event callbacks.
=cut
SV*
set_revents(SV* self, short revents)
CODE:
net_con * con = XS_STATE(net_con*, self);
if (revents != 0) {
con->con->options|= DRIZZLE_CON_IO_READY;
Connection.xs view on Meta::CPAN
RETVAL
=item $con->set_max_packet_size($max_packet_size);
Set max_packet_size for a connection.
=cut
SV*
set_max_packet_size(SV* self, U32 protocol_version)
CODE:
net_con * con = XS_STATE(net_con*, self);
drizzle_con_set_max_packet_size(con->con, protocol_version);
RETVAL = SvREFCNT_inc(self);
OUTPUT:
RETVAL
=item $con->set_fd($fd)
Use given file descriptor for connection.
=cut
SV*
set_fd(SV* self, int fd)
CODE:
net_con * con = XS_STATE(net_con*, self);
drizzle_return_t ret = drizzle_con_set_fd(con->con, fd);
if (ret != DRIZZLE_RETURN_OK) {
drizzle_st *drizzle = drizzle_con_drizzle(con->con);
Perl_croak(aTHX_ "drizzle_con_set_fd:%s\n", drizzle_error(drizzle));
}
RETVAL = SvREFCNT_inc(self);
OUTPUT:
RETVAL
=item $con->result_create($fd)
Initialize a result structure.
=cut
SV*
result_create(SV *_self)
CODE:
net_con * con = XS_STATE(net_con*, _self);
drizzle_result_st *result = drizzle_result_create(con->con, NULL);
if (result == NULL) {
drizzle_st *drizzle = drizzle_con_drizzle(con->con);
Perl_croak(aTHX_ "drizzle_result_create:%s\n", drizzle_error(drizzle));
}
RETVAL = _create_result(_self, NULL, result);
OUTPUT:
RETVAL
=item $con->command_buffer()
Read command and buffer it.
=cut
void
command_buffer(net_con *con)
PPCODE:
/* my ($data, $command, $total, $ret) = $con->command_buffer(); */
drizzle_command_t command;
size_t total;
drizzle_return_t ret;
uint8_t *data = NULL;
data = drizzle_command_buffer(con->con, &command, &total, &ret);
mXPUSHp((const char *)data, data ? strlen((char*)data) : 0);
mXPUSHi(command);
mXPUSHi(total);
mXPUSHi(ret);
XSRETURN(4);
=item my $fd = $con->fd()
Get file descriptor for connection.
=cut
int
fd(net_con * con)
CODE:
int fd = drizzle_con_fd(con->con);
RETVAL = fd;
OUTPUT:
RETVAL
=item my $host = $con->host();
Get the server host
=cut
const char *
host(net_con* self)
CODE:
RETVAL = drizzle_con_host(self->con);
OUTPUT:
RETVAL
=item my $user = $con->user();
Get the server user
=cut
const char *
user(net_con* self)
CODE:
RETVAL = drizzle_con_user(self->con);
OUTPUT:
RETVAL
=item my $password = $con->password();
Get the server password
=cut
const char *
password(net_con* self)
CODE:
RETVAL = drizzle_con_password(self->con);
( run in 0.687 second using v1.01-cache-2.11-cpan-5511b514fd6 )