Files
Clifford Yapp d824fc0c4e Keep longer directory names
We want to be consistent with the previous layout, to avoid needlessly
breaking existing codes.  The header update means client codes are not
required to include all of the stepcode library includes explicitly -
i.e., stepcode itself does not force this requirement with its own
internal includes.  However, if client codes do not want to add the
library prefixes to their own includes as we have for stepcode, they
should still be able to add the various includes and work as before.
Adjust the include directory names accordingly.
2022-10-02 17:57:57 -04:00

89 lines
2.0 KiB
C++

#ifndef GLOBALRULE_H
#define GLOBALRULE_H
#include "clstepcore/dictionaryInstance.h"
#include "whereRule.h"
#include "entityDescriptorList.h"
#include "sc_export.h"
class SC_CORE_EXPORT Global_rule : public Dictionary_instance {
public:
#ifdef _MSC_VER
#pragma warning( push )
#pragma warning( disable: 4251 )
#endif
Express_id _name;
#ifdef _MSC_VER
#pragma warning( pop )
#endif
Entity__set_var _entities; // not implemented
Where_rule__list_var _where_rules;
Schema_ptr _parent_schema;
std::string _rule_text; // non-SDAI
Global_rule();
Global_rule( const char * n, Schema_ptr parent_sch, const std::string & rt );
Global_rule( Global_rule & ); // not fully implemented
virtual ~Global_rule();
Express_id name_() const {
return _name;
}
Entity__set_var entities_() const {
return _entities;
}
Where_rule__list_var where_rules_() const {
return _where_rules;
}
Schema_ptr parent_schema_() const {
return _parent_schema;
}
const char * rule_text_() {
return _rule_text.c_str();
}
void name_( Express_id & n ) {
_name = n;
}
void entities_( const Entity__set_var & e ); // not implemented
void where_rules_( const Where_rule__list_var & wrl ); // not implemented
void parent_schema_( const Schema_ptr & s ) {
_parent_schema = s;
}
void rule_text_( const char * rt ) {
_rule_text = rt;
}
};
typedef Global_rule * Global_rule_ptr;
class SC_CORE_EXPORT Global_rule__set {
public:
Global_rule__set( int = 16 );
~Global_rule__set();
Global_rule_ptr & operator[]( int index );
void Insert( Global_rule_ptr, int index );
void Append( Global_rule_ptr );
void Remove( int index );
int Index( Global_rule_ptr );
int Count();
void Clear();
private:
void Check( int index );
private:
Global_rule_ptr * _buf;
int _bufsize;
int _count;
};
typedef Global_rule__set * Global_rule__set_ptr;
typedef Global_rule__set_ptr Global_rule__set_var;
#endif //GLOBALRULE_H