void get_argument(void* env, int argposition, Value& value) { struct dataObject obj; EnvRtnUnknown(env, argposition, &obj); Values values = data_object_to_values(obj); if (values.size() > 0) { value = values[0]; } }
Values Template::slot_range( const std::string & slot_name ) { DATA_OBJECT clipsdo; if ( !m_cobj ) return Values(); EnvDeftemplateSlotRange( m_environment.cobj(), m_cobj, const_cast<char*>( slot_name.c_str() ), &clipsdo ); return data_object_to_values( clipsdo ); }
Values Template::slot_cardinality( const std::string & slot_name ) { DATA_OBJECT clipsdo; if ( m_cobj ) { EnvDeftemplateSlotCardinality( m_environment.cobj(), m_cobj, const_cast<char*>( slot_name.c_str() ), &clipsdo ); return data_object_to_values( clipsdo ); } else return Values(); }
Values Fact::slot_value( const std::string & name ) { DATA_OBJECT data_object; int result; if ( !m_cobj ) return Values(); if ( name == "" ) { result = EnvGetFactSlot( m_environment.cobj(), m_cobj, NULL, &data_object ); // result = EnvGetFactSlot( m_environment.cobj(), m_cobj, "", &data_object ); } else result = EnvGetFactSlot( m_environment.cobj(), m_cobj, const_cast<char*>(name.c_str()), &data_object ); if (result) return data_object_to_values( data_object ); else return Values(); }
Values data_object_to_values( dataObject* clipsdo ) { return data_object_to_values( *clipsdo ); }