[ create a new paste ] login | about

Link: http://codepad.org/AAnjLkIK    [ raw code | fork | 1 comment ]

chatsiri.ratana - C++, pasted on May 30:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "APRImplement.h"
#include<iostream>
#include <apr_general.h>
#include <stdio.h>
#include <stdlib.h>

#include <apr_general.h>
#include <apr_tables.h>
#include <apr_strings.h>

/* apr_array's initial size.
 * because apr_array is a dynamic array, the initial size is not a max size of the array. */
#define ARRAY_INIT_SZ           32

APRImplement::APRImplement( )
{
	/* initail apr */
	apr_initialize();
	apr_pool_create( &mp, NULL );

}

/* get pool data */
apr_pool_t*  APRImplement::getMp(){
	
	return  mp;
}

/* insert data in stack */
void APRImplement::setApr( APRImplement aprGetMp, std::size_t  sizeValue ){
	arr = apr_array_make( aprGetMp.getMp(), ARRAY_INIT_SZ, sizeValue );
}

/* read data in stack by constant object*/
 void APRImplement::iterate_array( const apr_array_header_t  *arr ){
	
	for( int i = 0;  i < arr->nelts; i++ ){
		const char *s = ( ( const char ** )arr->elts)[ i ];
		std::cout<< " i data : "<< i << " ,s data : "<<s<<std::endl;
	}
}

 /* for pop data */
 void  APRImplement::iterate_stack_array( apr_array_header_t  *arr_ ){
	const char **ppt;
	/* casting type to ppt  :   ( const char ** ) */
	while(  ppt =  ( const char** ) apr_array_pop( arr_ ) ){
		std::cout<<"pop string : "<<*ppt<<std::endl;
	}
}
/* deconstructor */
APRImplement::~APRImplement()
{
 apr_pool_destroy( mp );
 apr_terminate();
	std::cout<<" Clear APR "<<std::endl;
}

/*get array header */
apr_array_header_t*   APRImplement::getARR(){
	return arr;
}

void APRImplement::append_items_to_array( apr_array_header_t *arr_, apr_pool_t * mp ,char *dataInsert ){
	 std::cout<<" Char insert :  "<<dataInsert<<std::endl;
		*( const char** )apr_array_push( arr_ ) = apr_pstrdup( mp, dataInsert );	 
		std::cout<<" Push complete "<<std::endl;
}


int main(){
	 	/* initial apr_pool_t */
		APRImplement  apr_init;
		char * insertValue = "testValue";
		/* initi value */
		apr_init.setApr( apr_init, sizeof(  const char* ) 	);		
		/* push data into stack */
		apr_init.append_items_to_array(  apr_init.getARR(),  apr_init.getMp(), insertValue  );
		/* list data in stack */
		apr_init.iterate_stack_array( apr_init.getARR() );
		
}


Create a new paste based on this one


Comments:
posted by chatsiri.ratana on May 30
reply