Aw

 view release on metacpan or  search on metacpan

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

			sv = sv_newmortal();
#ifdef PERL58_COMPAT
			XS_pack_charPtrPtr ( sv, infos[i].accessible_territories, infos[i].num_accessible_territories );
#else
			XS_pack_charPtrPtr ( sv, infos[i].accessible_territories );
#endif /* PERL58_COMPAT */
			hv_store ( hv, "accessible_territories", 22, sv, 0 );
			
			av_push( RETVAL, sv_bless( newRV_noinc((SV*)hv), gv_stashpv("Aw::Info",1) ) );
		
		}

		}

	OUTPUT:
		RETVAL

	CLEANUP:
		free ( infos ); // free policy is not detailed in the C Platform Vol. 2 p 9-52
                                // nor in awadmin.h, assume it follows awGetBrokersInTerritory
	                        // check this, doh! we don't have any gateways...
		SvREFCNT_dec( RETVAL );



awaBool
setTerritoryGatewaySharedEventTypes ( self, territory_name, av )
	Aw::Admin::Client self
	char * territory_name
	AV * av
	

	PREINIT:
		int i, n;
		HV * hv;
		SV ** sv;
		BrokerSharedEventTypeInfo * infos;
	
	CODE:
		AWXS_CLEARERROR

		n     = av_len ( av ) + 1;
		infos = (BrokerSharedEventTypeInfo *)safemalloc ( sizeof(BrokerSharedEventTypeInfo)*n );	

		for ( i = 0; i < n; i++ ) {
			sv = av_fetch ( av, i, 0 );
			hv = (HV*)SvRV(*sv);

			sv                        = hv_fetch ( hv, "event_type_name",  15, 0 );
			infos[i].event_type_name  = (char *)SvPV(*sv, PL_na);

			sv                        = hv_fetch ( hv, "subscribe_filter", 16, 0 );
			infos[i].subscribe_filter = (char *)SvPV(*sv, PL_na);

			sv                        = hv_fetch ( hv, "accept_publish",   14, 0 );
			infos[i].accept_publish   = (BrokerBoolean)SvIV(*sv);

			sv                        = hv_fetch ( hv, "accept_subscribe", 16, 0 );
			infos[i].accept_subscribe = (BrokerBoolean)SvIV(*sv);

			sv                        = hv_fetch ( hv, "is_synchronized",  15, 0 );
			infos[i].is_synchronized   = (BrokerBoolean)SvIV(*sv);
		}

		AWXS_CHECKSETERROR

		gErr = self->err = awSetTerritoryGatewaySharedEventTypes ( self->client, territory_name, n, infos );

		RETVAL = ( self->err == AW_NO_ERROR ) ? awaFalse : awaTrue;

	OUTPUT:
		RETVAL

	CLEANUP:
		Safefree ( infos );



Aw::Info
_getClientInfoById ( self, client_id )
	Aw::Admin::Client self
	char * client_id

	PREINIT:
		int n;
		BrokerClientInfo * info;
		char blString[24];
		SV * sv;
		char CLASS[] = "Aw::Info";

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awGetClientInfoById ( self->client, client_id, &info );

		AWXS_CHECKSETERROR_RETURN

		RETVAL = newHV();

		hv_store ( RETVAL, "_type",                  5, newSVpv ( "BrokerClientInfo", 16 ), 0 );

		sv = NEWSV ( 0, 0 );
		sv_setref_pv( sv, Nullch, (void*)info );

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


		hv_store ( RETVAL, "client_id",              9, newSVpv ( (char *)info->client_id, 0 ), 0 );
		hv_store ( RETVAL, "client_group",          12, newSVpv ( (char *)info->client_group, 0 ), 0 );
		hv_store ( RETVAL, "app_name",               8, newSVpv ( (char *)info->app_name, 0 ), 0 );

		hv_store ( RETVAL, "shared_event_ordering", 21, newSVpv ( (char *)info->shared_event_ordering, 0 ), 0 );

		if ( info->user_name )
		hv_store ( RETVAL, "user_name",              9, newSVpv ( (char *)info->user_name, 0 ), 0 );
		if ( info->authenticator_name )
		hv_store ( RETVAL, "authenticator_name",    18, newSVpv ( (char *)info->authenticator_name, 0 ), 0 );


		hv_store ( RETVAL, "can_share_state",       15, newSViv ( (awaBool)info->can_share_state ), 0 );
		hv_store ( RETVAL, "state_share_limit",     17, newSViv ( (int)info->state_share_limit ), 0 );

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

			hv_store ( hv, "is_system_defined",     17, newSViv ( (awaBool)infos[i]->is_system_defined ), 0 );
			hv_store ( hv, "access_label_required", 21, newSViv ( (awaBool)infos[i]->access_label_required ), 0 );

			av_push( RETVAL, sv_bless( newRV_noinc((SV*)hv), gv_stashpv("Aw::Info",1) ) );
		
		}

		}

	OUTPUT:
		RETVAL

	CLEANUP:
		free ( infos );	
		XS_release_charPtrPtr ( client_group_names );
		SvREFCNT_dec( RETVAL );



AV *
getTerritoryGatewaySharedEventTypesRef ( self, territory_name )
	Aw::Admin::Client self
	char * territory_name

	PREINIT:
		int n;
		BrokerSharedEventTypeInfo * infos;

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awGetTerritoryGatewaySharedEventTypes( self->client, territory_name, &n, &infos);

		AWXS_CHECKSETERROR_RETURN

		{
		HV * hv;
		SV * sv;
		int i;
		BrokerSharedEventTypeInfo * info;

		RETVAL = newAV();

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

			info = (BrokerSharedEventTypeInfo *)malloc ( sizeof(BrokerSharedEventTypeInfo) );
			memcpy ( info, &infos[i], sizeof(BrokerSharedEventTypeInfo) );

			hv_store ( hv, "_type",             5, newSVpv ( "BrokerSharedEventTypeInfo", 25 ), 0 );

			sv = NEWSV ( 0, 0 );
			sv_setref_pv( sv, Nullch, (void*)info );

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

			hv_store ( hv, "event_type_name",  15, newSVpv ( (char *)infos[i].event_type_name, 0 ), 0 );
			hv_store ( hv, "accept_publish",   14, newSViv ( (int)infos[i].accept_publish ), 0 );

			hv_store ( hv, "accept_subscribe", 16, newSViv ( (int)infos[i].accept_subscribe ), 0 );
			hv_store ( hv, "is_synchronized",  15, newSViv ( (int)infos[i].is_synchronized ), 0 );
			hv_store ( hv, "subscribe_filter", 16, newSVpv ( (char *)infos[i].subscribe_filter, 0 ), 0 );

			av_push( RETVAL, sv_bless( newRV_noinc((SV*)hv), gv_stashpv("Aw::Info",1) ) );
		
		}

		}

	OUTPUT:
		RETVAL

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



HV *
acquireChangeLock ( self )
	Aw::Admin::Client self

	PREINIT:
		SV *sv;
		BrokerChangeLockInfo * info;

	CODE:
		AWXS_CLEARERROR

		gErr = self->err = awAcquireBrokerChangeLock ( self->client, &info );

		AWXS_CHECKSETERROR_RETURN

		RETVAL = newHV();

		hv_store ( RETVAL, "acquired",    8, newSViv ( (awaBool)info->acquired ), 0 );
		hv_store ( RETVAL, "client_id",   9, newSVpv ( (char*)info->client_id, 0 ), 0 );
		hv_store ( RETVAL, "session_id", 10, newSViv ( (int)info->session_id ), 0 );

	OUTPUT:
		RETVAL

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



AV *
getActivityTraces ( self, seqn, msecs )
	Aw::Admin::Client self
	int seqn
	int msecs

	PREINIT:
		int n;
		BrokerTraceEvent * traces;
		char blString[24];

	CODE:
		AWXS_CLEARERROR



( run in 1.063 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )