| /** @file |
| |
| A brief file description |
| |
| @section license License |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| |
| |
| #if !defined (_RECORDS_CONFIG_H_) |
| #define _RECORDS_CONFIG_H_ |
| |
| #include "MgmtDefs.h" |
| #include "BaseRecords.h" |
| #include "MgmtHashTable.h" |
| #include "P_RecCore.h" |
| |
| enum RecordUpdateType |
| { |
| RU_NULL, // default: don't know the behavior |
| RU_REREAD, // config can be updated dynamically w/ traffic_line -x |
| RU_RESTART_TS, // config requires TS to be restarted to take effect |
| RU_RESTART_TM, // config requires TM/TS to be restarted to take effect |
| RU_RESTART_TC // config requires TC/TM/TS to be restarted to take effect |
| }; |
| |
| enum RecordRequiredType |
| { |
| RR_NULL, // config is _not_ required to be defined in records.config |
| RR_REQUIRED // config _is_ required to be defined in record.config |
| }; |
| |
| enum RecordCheckType |
| { |
| RC_NULL, // default: no check type defined |
| RC_STR, // config is a string |
| RC_INT, // config is an integer with a range |
| RC_IP // config is an ip address |
| }; |
| |
| enum RecordAccessType |
| { |
| RA_NULL, // default: no access type defined |
| RA_NO_ACCESS, // config cannot be read or set |
| RA_READ_ONLY // config can only be read |
| }; |
| |
| // Retain this struct for ease of CVS merging |
| struct RecordElement |
| { |
| int type; // type of the record (CONFIG, PROCESS, etc) |
| char *name; // name of the record |
| char *description; // short description of the record |
| MgmtType value_type; // type of the record value (INT, FLOAT, etc) |
| char *value; // default value for the record |
| RecordUpdateType update; // action necessary to change a configuration |
| RecordRequiredType required; // is records required to be in records.config? |
| RecordCheckType check; |
| char *regex; |
| RecordAccessType access; // access level of the record |
| }; |
| |
| extern RecordElement RecordsConfig[]; // big struct of all system records |
| |
| // remove this when librecords is done. |
| extern MgmtHashTable *RecordsConfigIndex; // hash table index into record table (record_name to record_element-index) |
| |
| // remove this when librecords is done. |
| void RecordsConfigInit(); // initializes RecordsConfigIndex |
| |
| void LibRecordsConfigInit(); // initializes RecordsConfigIndex |
| |
| void test_librecords(); |
| |
| #endif |