Aw

 view release on metacpan or  search on metacpan

xs/Aw/Admin.xs  view on Meta::CPAN

setLogConfig ( self, log_config )
	Aw::Admin::ServerClient self
	Aw::Admin::LogConfig log_config

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awSetServerLogConfig ( self->server_client, log_config->log_config );

		AWXS_CHECKSETERROR

		RETVAL = ( gErr == AW_NO_ERROR ) ? awaFalse : awaTrue;

	OUTPUT:
	RETVAL



HV *
getLogStatus ( self )
	Aw::Admin::ServerClient self

	PREINIT:
		BrokerServerLogInfo * info;

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awGetServerLogStatus ( self->server_client, info );

		AWXS_CHECKSETERROR_RETURN

		{
		SV * sv;

		RETVAL = newHV();

		sv = sv_newmortal();
		sv_setref_pv( sv, "Aw::Date", (void*)awCopyDate(&info->first_entry) );
		SvREFCNT_inc(sv);
		hv_store ( RETVAL, "first_entry", 11, sv, 0 );

		sv = sv_newmortal();
		sv_setref_pv( sv, "Aw::Date", (void*)awCopyDate(&info->last_entry) );
		SvREFCNT_inc(sv);
		hv_store ( RETVAL, "last_entry", 10, sv, 0 );

		hv_store ( RETVAL, "num_entries", 11, newSViv ( (int)info->num_entries ), 0 );
		}

	OUTPUT:
		RETVAL

	CLEANUP:
		free ( info );
		SvREFCNT_dec( RETVAL );



AV *
getLogEntriesRef ( self, first_entry, locale )
	Aw::Admin::ServerClient self
	Aw::Date first_entry
	char * locale

	PREINIT:
		int n;
		BrokerServerLogEntry * entries;

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awGetServerLogEntries ( self->server_client, *first_entry, locale, &n, &entries );

		AWXS_CHECKSETERROR_RETURN

		{
		HV * hv;
		SV * sv;
		int i;
		BrokerServerLogEntry * entry;

		RETVAL = newAV();

		for ( i = 0; i < n; i++ ) {
			hv = newHV();

			entry = (BrokerServerLogEntry *)malloc ( sizeof(BrokerServerLogEntry) );
			memcpy ( entry, &entries[i], sizeof(BrokerServerLogEntry) );

			hv_store ( hv, "_type",           5, newSVpv ( "BrokerServerLogEntry", 20 ), 0 );
			sv = NEWSV ( 0, 0 );
			sv_setref_pv( sv, Nullch, (void*)entry );

			hv_store ( hv, "_info",           5, sv, 0 );

			sv = sv_newmortal();
			sv_setref_pv( sv, "Aw::Date", (void*)awCopyDate(&entries[i].time_stamp) );
			SvREFCNT_inc(sv);
			hv_store ( hv, "time_stamp",     10, sv, 0 );

			hv_store ( hv, "entry_type",     10, newSViv ( (int)entries[i].entry_type ), 0 );
			hv_store ( hv, "entry_msg_id",   12, newSViv ( (int)entries[i].entry_msg_id ), 0 );
			hv_store ( hv, "entry_msg_text", 14, newSVpv ( entries[i].entry_msg_text, 0 ), 0 );

			av_push( RETVAL, sv_bless( newRV_noinc((SV*)hv), gv_stashpv("Aw::Info",1) ) );
			free ( &entries[i] ); // C Platform Vol 2 is hosed on page 9-94
			                      // hopefully this is what they mean, otherwise 
			                      // free just enteries[0] at the end.
		}

		}

	OUTPUT:
		RETVAL

	CLEANUP:
		SvREFCNT_dec( RETVAL );



awaBool
pruneLog ( self, older_than )
	Aw::Admin::ServerClient self
	Aw::Date older_than

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awPruneServerLog ( self->server_client, *older_than );

		AWXS_CHECKSETERROR



( run in 2.439 seconds using v1.01-cache-2.11-cpan-2398b32b56e )