00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <clipsmm/global.h>
00020
00021 extern "C" {
00022 #include <clips/clips.h>
00023 };
00024
00025 #include <clipsmm/environment.h>
00026
00027 namespace DACLIPS {
00028
00029 Global::Global( Environment& environment, void* cobj ) :
00030 EnvironmentObject( environment, cobj ) {}
00031
00032 Global::pointer Global::create( Environment & environment, void * cobj ) {
00033 return Global::pointer( new Global( environment, cobj ) );
00034 }
00035
00036 Global::~Global()
00037 {
00038 }
00039
00040 std::string Global::name( )
00041 {
00042 if ( m_cobj )
00043 return EnvGetDefglobalName( m_environment.cobj(), m_cobj );
00044 else
00045 return std::string();
00046 }
00047
00048 std::string Global::formatted( )
00049 {
00050 if ( m_cobj )
00051 return EnvGetDefglobalPPForm( m_environment.cobj(), m_cobj );
00052 else
00053 return std::string();
00054 }
00055
00056 std::string Global::module_name() {
00057 if ( m_cobj )
00058 return EnvDefglobalModule( m_environment.cobj(), m_cobj );
00059 else
00060 return std::string();
00061 }
00062
00063 Values Global::value() {
00064 DATA_OBJECT clips_do;
00065 if ( m_cobj ) {
00066 QGetDefglobalValue( m_environment.cobj(), m_cobj, &clips_do );
00067 return data_object_to_values( clips_do );
00068 }
00069 else
00070 return Values();
00071 }
00072
00073 void Global::set_value( const Values& value ) {
00074 DATA_OBJECT* clips_do;
00075 if ( m_cobj ) {
00076 clips_do = value_to_data_object( m_environment, value );
00077 QSetDefglobalValue( m_environment.cobj(), (defglobal*)m_cobj, clips_do, false );
00078 delete clips_do;
00079 }
00080 }
00081
00082 void Global::reset_value() {
00083 if ( m_cobj )
00084 QSetDefglobalValue( m_environment.cobj(), (defglobal*)m_cobj, NULL, true );
00085 }
00086
00087 bool Global::is_watched() {
00088 if ( m_cobj )
00089 return EnvGetDefglobalWatch( m_environment.cobj(), m_cobj );
00090 else
00091 return false;
00092 }
00093
00094 void Global::set_watch( bool watch ) {
00095 if ( m_cobj )
00096 EnvSetDefglobalWatch( m_environment.cobj(), watch, m_cobj );
00097 }
00098
00099 Global::pointer Global::next() {
00100 void* nxt;
00101 if ( m_cobj ) {
00102 nxt = EnvGetNextDefglobal( m_environment.cobj(), m_cobj );
00103 if ( nxt )
00104 return Global::create( m_environment, nxt );
00105 }
00106 return Global::pointer();
00107 }
00108
00109 bool Global::is_deletable() {
00110 if ( m_cobj )
00111 return EnvIsDefglobalDeletable( m_environment.cobj(), m_cobj );
00112 return false;
00113 }
00114
00115 bool Global::undefine() {
00116 if ( m_cobj )
00117 return EnvUndefglobal( m_environment.cobj(), m_cobj );
00118 return false;
00119 }
00120
00121 }