Soar Kernel  9.3.2 08-06-12
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes
soar_module::primitive_set_param< T > Class Template Reference

#include <soar_module.h>

Inherits soar_module::param.

Public Member Functions

virtual char * get_string ()
virtual bool in_set (T test_val)
 primitive_set_param (const char *new_name, predicate< T > *new_prot_pred)
virtual std::set< T >::iterator set_begin ()
virtual std::set< T >::iterator set_end ()
virtual bool set_string (const char *new_string)
virtual bool validate_string (const char *new_value)
virtual ~primitive_set_param ()
- Public Member Functions inherited from soar_module::param
 param (const char *new_name)
virtual ~param ()
- Public Member Functions inherited from soar_module::named_object
const char * get_name ()
 named_object (const char *new_name)
virtual ~named_object ()

Protected Attributes

std::set< T > * my_set
predicate< T > * prot_pred
std::string * value

Detailed Description

template<typename T>
class soar_module::primitive_set_param< T >

Definition at line 391 of file soar_module.h.

Constructor & Destructor Documentation

template<typename T >
soar_module::primitive_set_param< T >::primitive_set_param ( const char *  new_name,
predicate< T > *  new_prot_pred 
)
inline

Definition at line 399 of file soar_module.h.

: param( new_name ), my_set( new std::set< T >() ), value( new std::string ), prot_pred( new_prot_pred ) {}
template<typename T >
virtual soar_module::primitive_set_param< T >::~primitive_set_param ( )
inlinevirtual

Member Function Documentation

template<typename T >
virtual char* soar_module::primitive_set_param< T >::get_string ( )
inlinevirtual

Implements soar_module::named_object.

Definition at line 408 of file soar_module.h.

References soar_module::primitive_set_param< T >::value.

{
char *return_val = new char[ value->length() + 1 ];
strcpy( return_val, value->c_str() );
return_val[ value->length() ] = '\0';
return return_val;
}
template<typename T >
virtual bool soar_module::primitive_set_param< T >::in_set ( test_val)
inlinevirtual

Definition at line 471 of file soar_module.h.

References soar_module::primitive_set_param< T >::my_set.

{
return ( my_set->find( test_val ) != my_set->end() );
}
template<typename T >
virtual std::set< T >::iterator soar_module::primitive_set_param< T >::set_begin ( )
inlinevirtual

Definition at line 476 of file soar_module.h.

References soar_module::primitive_set_param< T >::my_set.

Referenced by smem_lti_activate().

{
return my_set->begin();
}
template<typename T >
virtual std::set< T >::iterator soar_module::primitive_set_param< T >::set_end ( )
inlinevirtual

Definition at line 481 of file soar_module.h.

References soar_module::primitive_set_param< T >::my_set.

Referenced by smem_lti_activate().

{
return my_set->end();
}
template<typename T >
virtual bool soar_module::primitive_set_param< T >::set_string ( const char *  new_string)
inlinevirtual

Implements soar_module::param.

Definition at line 424 of file soar_module.h.

References soar_module::primitive_set_param< T >::my_set, soar_module::primitive_set_param< T >::prot_pred, and soar_module::primitive_set_param< T >::value.

Referenced by init_soar_agent().

{
T new_val;
from_string( new_val, new_string );
if ( (*prot_pred)( new_val ) )
{
return false;
}
else
{
typename std::set< T >::iterator it = my_set->find( new_val );
std::string temp_str;
if ( it != my_set->end() )
{
my_set->erase( it );
// regenerate value from scratch
value->clear();
for ( it=my_set->begin(); it!=my_set->end(); )
{
to_string( *it, temp_str );
value->append( temp_str );
it++;
if ( it != my_set->end() )
value->append( ", " );
}
}
else
{
my_set->insert( new_val );
if ( !value->empty() )
value->append( ", " );
to_string( new_val, temp_str );
value->append( temp_str );
}
return true;
}
}
template<typename T >
virtual bool soar_module::primitive_set_param< T >::validate_string ( const char *  new_value)
inlinevirtual

Implements soar_module::param.

Definition at line 417 of file soar_module.h.

{
T test_val;
return from_string( test_val, new_value );
}

Field Documentation

template<typename T >
std::set< T >* soar_module::primitive_set_param< T >::my_set
protected
template<typename T >
predicate< T >* soar_module::primitive_set_param< T >::prot_pred
protected
template<typename T >
std::string* soar_module::primitive_set_param< T >::value
protected

The documentation for this class was generated from the following file: