Skip to content
Snippets Groups Projects
Commit 241164b0 authored by Alexander Mueller's avatar Alexander Mueller
Browse files

%[ER: 120]%

End of week
parent 23700791
No related branches found
No related tags found
No related merge requests found
Showing
with 216 additions and 286 deletions
...@@ -171,6 +171,10 @@ MAC/Config/Apc/ApcRCUType -text svneol=native#application/octet-stream ...@@ -171,6 +171,10 @@ MAC/Config/Apc/ApcRCUType -text svneol=native#application/octet-stream
MAC/Config/Apc/ApcRackType -text svneol=native#application/octet-stream MAC/Config/Apc/ApcRackType -text svneol=native#application/octet-stream
MAC/Config/Apc/ApcStationType -text svneol=native#application/octet-stream MAC/Config/Apc/ApcStationType -text svneol=native#application/octet-stream
MAC/Config/Apc/ApcSubRackType -text svneol=native#application/octet-stream MAC/Config/Apc/ApcSubRackType -text svneol=native#application/octet-stream
MAC/Config/Apc/b1.apc -text svneol=native#application/octet-stream
MAC/Config/Apc/b2.apc -text svneol=native#application/octet-stream
MAC/Config/Apc/d1.apc -text svneol=native#application/octet-stream
MAC/Config/Apc/e1.apc -text svneol=native#application/octet-stream
MAC/Config/LofarPropertyTypes.pvss -text svneol=native#application/octet-stream MAC/Config/LofarPropertyTypes.pvss -text svneol=native#application/octet-stream
MAC/Config/mac.ns -text svneol=native#application/octet-stream MAC/Config/mac.ns -text svneol=native#application/octet-stream
MAC/Config/mac.top -text svneol=native#application/octet-stream MAC/Config/mac.top -text svneol=native#application/octet-stream
...@@ -195,6 +199,8 @@ MAC/GCF/TM/configure.in -text svneol=native#application/octet-stream ...@@ -195,6 +199,8 @@ MAC/GCF/TM/configure.in -text svneol=native#application/octet-stream
MAC/GCF/TM/src/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/TM/src/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/TM/test/Echo_Protocol.prot -text svneol=native#application/octet-stream MAC/GCF/TM/test/Echo_Protocol.prot -text svneol=native#application/octet-stream
MAC/GCF/TM/test/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/TM/test/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/TM/test/tutorial.ns.in -text svneol=native#application/octet-stream
MAC/GCF/TM/test/tutorial.top.in -text svneol=native#application/octet-stream
MAC/GCF/_CoreComps/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_CoreComps/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_CoreComps/PA/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_CoreComps/PA/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_CoreComps/PA/src/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_CoreComps/PA/src/Makefile.am -text svneol=native#application/octet-stream
...@@ -219,6 +225,7 @@ MAC/GCF/_PAL/Makefile.am -text svneol=native#application/octet-stream ...@@ -219,6 +225,7 @@ MAC/GCF/_PAL/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PA/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_PAL/PA/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PA/src/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_PAL/PA/src/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PA/src/PA_Protocol.prot -text svneol=native#application/octet-stream MAC/GCF/_PAL/PA/src/PA_Protocol.prot -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PA/src/loadAPC -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PML/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_PAL/PML/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_PAL/PML/src/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_PAL/PML/src/Makefile.am -text svneol=native#application/octet-stream
MAC/GCF/_PAL/SAL/Makefile.am -text svneol=native#application/octet-stream MAC/GCF/_PAL/SAL/Makefile.am -text svneol=native#application/octet-stream
......
# ascii dump of database
# DpValue
ElementName TypeName _original.._value _original.._status _original.._stime
__default_b_1.P1 TTypeB 100 0x101 25.05.2004 14:50:53.560
__default_b_1.P2 TTypeB \79 0x101 25.05.2004 14:53:26.847
__default_b_1.P3 TTypeB 100.5 0x101 25.05.2004 14:53:56.908
# ascii dump of database
# DpValue
ElementName TypeName _original.._value _original.._status _original.._stime
__default_b_2.P1 TTypeB 200 0x101 25.05.2004 14:54:23.107
__default_b_2.P2 TTypeB \80 0x101 25.05.2004 14:54:31.898
__default_b_2.P3 TTypeB 200.5 0x101 25.05.2004 14:54:41.504
# ascii dump of database
# DpValue
ElementName TypeName _original.._value _original.._status _original.._stime
__default_d_1.J.P00 TTypeD 100 0x101 25.05.2004 14:59:19.443
__default_d_1.J.P01 TTypeD 100.01 0x101 25.05.2004 14:59:19.443
__default_d_1.J.P02 TTypeD 100.02 0x101 25.05.2004 14:59:19.443
__default_d_1.J.P03 TTypeD 100.03 0x101 25.05.2004 14:59:19.443
__default_d_1.J.P04 TTypeD 100.04 0x101 25.05.2004 14:59:19.443
__default_d_1.J.P05 TTypeD 100.05 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P06 TTypeD 100.06 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P07 TTypeD 100.07 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P08 TTypeD 100.08 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P09 TTypeD 100.09 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P10 TTypeD 100.1 0x101 25.05.2004 14:59:19.444
__default_d_1.J.P11 TTypeD 100.11 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P12 TTypeD 100.12 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P13 TTypeD 100.13 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P14 TTypeD 100.14 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P15 TTypeD 100.15 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P16 TTypeD 100.16 0x101 25.05.2004 14:59:19.445
__default_d_1.J.P17 TTypeD 100.17 0x101 25.05.2004 14:59:19.446
__default_d_1.J.P18 TTypeD 100.18 0x101 25.05.2004 14:59:19.446
__default_d_1.J.P19 TTypeD 100.19 0x101 25.05.2004 14:59:19.446
__default_d_1.J.P20 TTypeD 100.2 0x101 25.05.2004 14:59:19.446
__default_d_1.J.P21 TTypeD 100.21 0x101 25.05.2004 14:59:19.446
__default_d_1.J.P22 TTypeD 100.22 0x101 25.05.2004 14:59:19.447
__default_d_1.J.P23 TTypeD 100.23 0x101 25.05.2004 14:59:19.447
__default_d_1.J.P24 TTypeD 100.24 0x101 25.05.2004 14:59:19.447
__default_d_1.J.P25 TTypeD 100.25 0x101 25.05.2004 14:59:19.447
__default_d_1.J.P26 TTypeD 100.26 0x101 25.05.2004 14:59:19.447
__default_d_1.J.P27 TTypeD 100.27 0x101 25.05.2004 14:59:19.448
__default_d_1.J.P28 TTypeD 100.28 0x101 25.05.2004 14:59:19.448
__default_d_1.J.P29 TTypeD 100.29 0x101 25.05.2004 14:59:19.448
__default_d_1.J.P30 TTypeD 100.3 0x101 25.05.2004 14:59:19.448
__default_d_1.J.P31 TTypeD 100.31 0x101 25.05.2004 14:59:19.449
__default_d_1.J.P32 TTypeD 100.32 0x101 25.05.2004 14:59:19.449
__default_d_1.J.P33 TTypeD 100.33 0x101 25.05.2004 14:59:19.449
__default_d_1.J.P34 TTypeD 100.34 0x101 25.05.2004 14:59:19.449
__default_d_1.J.P35 TTypeD 100.35 0x101 25.05.2004 14:59:19.450
__default_d_1.J.P36 TTypeD 100.36 0x101 25.05.2004 14:59:19.450
__default_d_1.J.P37 TTypeD 100.37 0x101 25.05.2004 14:59:19.450
__default_d_1.J.P38 TTypeD 100.38 0x101 25.05.2004 14:59:19.450
__default_d_1.J.P39 TTypeD 100.39 0x101 25.05.2004 14:59:19.451
__default_d_1.J.P40 TTypeD 100.4 0x101 25.05.2004 14:59:19.451
__default_d_1.J.P41 TTypeD 100.41 0x101 25.05.2004 14:59:19.451
__default_d_1.J.P42 TTypeD 100.42 0x101 25.05.2004 14:59:19.451
__default_d_1.J.P43 TTypeD 100.43 0x101 25.05.2004 14:59:19.452
__default_d_1.J.P44 TTypeD 100.44 0x101 25.05.2004 14:59:19.452
__default_d_1.J.P45 TTypeD 100.45 0x101 25.05.2004 14:59:19.452
__default_d_1.J.P46 TTypeD 100.46 0x101 25.05.2004 14:59:19.452
__default_d_1.J.P47 TTypeD 100.47 0x101 25.05.2004 14:59:19.453
__default_d_1.J.P48 TTypeD 100.48 0x101 25.05.2004 14:59:19.453
__default_d_1.J.P49 TTypeD 100.49 0x101 25.05.2004 14:59:19.453
__default_d_1.J.P50 TTypeD 100.5 0x101 25.05.2004 14:59:19.453
__default_d_1.J.P51 TTypeD 100.51 0x101 25.05.2004 14:59:19.454
__default_d_1.J.P52 TTypeD 100.52 0x101 25.05.2004 14:59:19.454
__default_d_1.J.P53 TTypeD 100.53 0x101 25.05.2004 14:59:19.454
__default_d_1.J.P54 TTypeD 100.54 0x101 25.05.2004 14:59:19.455
__default_d_1.J.P55 TTypeD 100.55 0x101 25.05.2004 14:59:19.455
__default_d_1.J.P56 TTypeD 100.56 0x101 25.05.2004 14:59:19.455
__default_d_1.J.P57 TTypeD 100.57 0x101 25.05.2004 14:59:19.455
__default_d_1.J.P58 TTypeD 100.58 0x101 25.05.2004 14:59:19.456
__default_d_1.J.P59 TTypeD 100.59 0x101 25.05.2004 14:59:19.456
__default_d_1.J.P60 TTypeD 100.6 0x101 25.05.2004 14:59:19.456
__default_d_1.J.P61 TTypeD 100.61 0x101 25.05.2004 14:59:19.457
__default_d_1.J.P62 TTypeD 100.62 0x101 25.05.2004 14:59:19.457
__default_d_1.J.P63 TTypeD 100.63 0x101 25.05.2004 14:59:19.457
__default_d_1.J.P64 TTypeD 100.64 0x101 25.05.2004 14:59:19.458
__default_d_1.J.P65 TTypeD 100.65 0x101 25.05.2004 14:59:19.458
__default_d_1.J.P66 TTypeD 100.66 0x101 25.05.2004 14:59:19.458
__default_d_1.J.P67 TTypeD 100.67 0x101 25.05.2004 14:59:19.459
__default_d_1.J.P68 TTypeD 100.68 0x101 25.05.2004 14:59:19.459
__default_d_1.J.P69 TTypeD 100.69 0x101 25.05.2004 14:59:19.459
__default_d_1.J.P70 TTypeD 100.7 0x101 25.05.2004 14:59:19.460
__default_d_1.J.P71 TTypeD 100.71 0x101 25.05.2004 14:59:19.460
__default_d_1.J.P72 TTypeD 100.72 0x101 25.05.2004 14:59:19.460
__default_d_1.J.P73 TTypeD 100.73 0x101 25.05.2004 14:59:19.461
__default_d_1.J.P74 TTypeD 100.74 0x101 25.05.2004 14:59:19.461
__default_d_1.J.P75 TTypeD 100.75 0x101 25.05.2004 14:59:19.461
__default_d_1.J.P76 TTypeD 100.76 0x101 25.05.2004 14:59:19.462
__default_d_1.J.P77 TTypeD 100.77 0x101 25.05.2004 14:59:19.462
__default_d_1.J.P78 TTypeD 100.78 0x101 25.05.2004 14:59:19.462
__default_d_1.J.P79 TTypeD 100.79 0x101 25.05.2004 14:59:19.463
__default_d_1.J.P80 TTypeD 100.8 0x101 25.05.2004 14:59:19.463
__default_d_1.J.P81 TTypeD 100.81 0x101 25.05.2004 14:59:19.463
__default_d_1.J.P82 TTypeD 100.82 0x101 25.05.2004 14:59:19.464
__default_d_1.J.P83 TTypeD 100.83 0x101 25.05.2004 14:59:19.464
__default_d_1.J.P84 TTypeD 100.84 0x101 25.05.2004 14:59:19.464
__default_d_1.J.P85 TTypeD 100.85 0x101 25.05.2004 14:59:19.465
__default_d_1.J.P86 TTypeD 100.86 0x101 25.05.2004 14:59:19.465
__default_d_1.J.P87 TTypeD 100.87 0x101 25.05.2004 14:59:19.466
__default_d_1.J.P88 TTypeD 100.88 0x101 25.05.2004 14:59:19.466
__default_d_1.J.P89 TTypeD 100.89 0x101 25.05.2004 14:59:19.466
__default_d_1.J.P90 TTypeD 100.9 0x101 25.05.2004 14:59:19.467
__default_d_1.J.P91 TTypeD 100.91 0x101 25.05.2004 14:59:19.467
__default_d_1.J.P92 TTypeD 100.92 0x101 25.05.2004 14:59:19.467
__default_d_1.J.P93 TTypeD 100.93 0x101 25.05.2004 14:59:19.468
__default_d_1.J.P94 TTypeD 100.94 0x101 25.05.2004 14:59:19.468
__default_d_1.J.P95 TTypeD 100.95 0x101 25.05.2004 14:59:19.469
__default_d_1.J.P96 TTypeD 100.96 0x101 25.05.2004 14:59:19.469
__default_d_1.J.P97 TTypeD 100.97 0x101 25.05.2004 14:59:19.469
__default_d_1.J.P98 TTypeD 100.98 0x101 25.05.2004 14:59:19.470
__default_d_1.J.P99 TTypeD 100.99 0x101 25.05.2004 14:59:19.470
# ascii dump of database
# DpValue
ElementName TypeName _original.._value _original.._status _original.._stime
__default_e_1.P1 TTypeE \100 0x101 04.06.2004 07:31:03.308
__default_e_1.P2 TTypeE 200.12 0x101 04.06.2004 07:31:17.375
__default_e_1.P3 TTypeE "koe" 0x101 04.06.2004 07:31:25.722
__default_e_1.P4 TTypeE 100.05 0x101 04.06.2004 07:31:36.324
__default_e_1.P5 TTypeE -200 0x101 04.06.2004 07:31:47.037
__default_e_1.P6 TTypeE 100 0x101 04.06.2004 07:31:57.148
log4cplus.rootLogger=INFO, STDOUT log4cplus.rootLogger=INFO, STDOUT
log4cplus.additivity.ASTRON=FALSE log4cplus.additivity.ASTRON=FALSE
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.TM.Logger=TRACE, STDOUT #log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.TM.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.SAL.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.SAL.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.PML.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.PML.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.PA.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.CoreComps.PA.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.PI.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.PI.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.SS.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.SS.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.PMLlite.Logger=TRACE, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.GCF.Services.PMLlite.Logger=TRACE, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.ExampleLogger=TRACE, EXAMPLEROLFILE
log4cplus.logger.ASTRON.LOFAR.MAC.ExampleLogger2=WARN, STDOUT log4cplus.logger.ASTRON.LOFAR.MAC.ExampleLogger2=WARN, STDOUT
log4cplus.logger.ASTRON.LOFAR.MAC.PVSS_Test=INFO, PVSS_TEST_ROLFILE
log4cplus.appender.STDOUT=log4cplus::ConsoleAppender log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%d-%m-%y %H:%M:%S} %-5p %c{2} - %m [%l]%n log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%d-%m-%y %H:%M:%S} %-5p %c{3} - %m [%l]%n
log4cplus.additivity.MAC=FALSE log4cplus.additivity.MAC=FALSE
log4cplus.logger.MAC=TRACE, STDOUT log4cplus.logger.MAC=TRACE, STDOUT
\ No newline at end of file
log4cplus.appender.EXAMPLEROLFILE=log4cplus::RollingFileAppender
log4cplus.appender.EXAMPLEROLFILE.File=output_${ENV_VAR}.log
log4cplus.appender.EXAMPLEROLFILE.MaxFileSize=5MB
#log4cplus.appender.EXAMPLEROLFILE.MaxFileSize=500KB
log4cplus.appender.EXAMPLEROLFILE.MaxBackupIndex=5
log4cplus.appender.EXAMPLEROLFILE.layout=log4cplus::TTCCLayout
log4cplus.appender.PVSS_TEST_ROLFILE=log4cplus::RollingFileAppender
log4cplus.appender.PVSS_TEST_ROLFILE.File=pvss_test_output_${ENV_VAR}.log
log4cplus.appender.PVSS_TEST_ROLFILE.MaxFileSize=5MB
#log4cplus.appender.PVSS_TEST_ROLFILE.MaxFileSize=500KB
log4cplus.appender.PVSS_TEST_ROLFILE.MaxBackupIndex=5
log4cplus.appender.PVSS_TEST_ROLFILE.layout=log4cplus::PatternLayout
log4cplus.appender.PVSS_TEST_ROLFILE.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S},%m%n
...@@ -27,17 +27,17 @@ ...@@ -27,17 +27,17 @@
#include <assert.h> #include <assert.h>
#define GCF_PROP_NAME_SEP '_' #define GCF_PROP_NAME_SEP '.'
enum TGCFResult { enum TGCFResult {
GCF_NO_ERROR, GCF_NO_ERROR,
GCF_UNKNOWN_ERROR, GCF_UNKNOWN_ERROR,
GCF_PML_ERROR, GCF_PML_ERROR,
GCF_APCLOAD_ERROR, GCF_EXTPS_LOAD_ERROR,
GCF_APCRELOAD_ERROR, GCF_PS_CONFIGURE_ERROR,
GCF_APCUNLOAD_ERROR, GCF_EXTPS_UNLOAD_ERROR,
GCF_MYPROPSLOAD_ERROR, GCF_MYPS_ENABLE_ERROR,
GCF_MYPROPSUNLOAD_ERROR, GCF_MYPS_DISABLE_ERROR,
GCF_VALUESTRING_NOT_VALID, GCF_VALUESTRING_NOT_VALID,
GCF_DIFFERENT_TYPES, GCF_DIFFERENT_TYPES,
GCF_BUSY, GCF_BUSY,
...@@ -50,18 +50,25 @@ enum TGCFResult { ...@@ -50,18 +50,25 @@ enum TGCFResult {
GCF_NO_PROPER_DATA, GCF_NO_PROPER_DATA,
GCF_SCOPE_ALREADY_REG, GCF_SCOPE_ALREADY_REG,
GCF_ALREADY_SUBSCRIBED, GCF_ALREADY_SUBSCRIBED,
GCF_NOT_SUBSCRIBED GCF_NOT_SUBSCRIBED,
GCF_WRONG_STATE
}; };
typedef unsigned char TAccessMode; typedef unsigned char TAccessMode;
#define GCF_READABLE_PROP 1 #define GCF_READABLE_PROP 1
#define GCF_WRITABLE_PROP 2 #define GCF_WRITABLE_PROP 2
typedef enum TMACValueType {NO_LPT, LPT_BOOL, LPT_CHAR, LPT_UNSIGNED, LPT_INTEGER,
LPT_BIT32, LPT_BLOB, LPT_REF, LPT_DOUBLE, LPT_DATETIME,
LPT_STRING, LPT_DYNARR = 0x80,
LPT_DYNBOOL, LPT_DYNCHAR, LPT_DYNUNSIGNED, LPT_DYNINTEGER,
LPT_DYNBIT32, LPT_DYNBLOB, LPT_DYNREF, LPT_DYNDOUBLE, LPT_DYNDATETIME,
LPT_DYNSTRING };
typedef struct typedef struct
{ {
char* propName; char* propName;
unsigned int type; TMACValueType type;
TAccessMode accessMode; TAccessMode accessMode;
char* defaultValue; char* defaultValue;
} }
......
...@@ -41,12 +41,6 @@ class GCFPValue ...@@ -41,12 +41,6 @@ class GCFPValue
* In case a dynamic array will be used the type ID enumeration starts on * In case a dynamic array will be used the type ID enumeration starts on
* 0x80. * 0x80.
*/ */
enum TMACValueType {NO_LPT, LPT_BOOL, LPT_CHAR, LPT_UNSIGNED, LPT_INTEGER,
LPT_BIT32, LPT_BLOB, LPT_REF, LPT_DOUBLE, LPT_DATETIME,
LPT_STRING, LPT_DYNARR = 0x80,
LPT_DYNBOOL, LPT_DYNCHAR, LPT_DYNUNSIGNED, LPT_DYNINTEGER,
LPT_DYNBIT32, LPT_DYNBLOB, LPT_DYNREF, LPT_DYNDOUBLE, LPT_DYNDATETIME,
LPT_DYNSTRING };
/** /**
* The constructor * The constructor
* Sets the type ID for each subclassed property value type class * Sets the type ID for each subclassed property value type class
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
// if you're using MFC, you'll need to un-comment this line // if you're using MFC, you'll need to un-comment this line
// #include "stdafx.h" // #include "stdafx.h"
#include "CmdLine.h" #include <GCF/CmdLine.h>
#include <ctype.h> #include <ctype.h>
/*------------------------------------------------------ /*------------------------------------------------------
......
/*------------------------------------------------------
CCmdLine
A utility for parsing command lines.
Copyright (C) 1999 Chris Losinger, Smaller Animals Software.
http://www.smalleranimals.com
This software is provided 'as-is', without any express
or implied warranty. In no event will the authors be
held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software
for any purpose, including commercial applications, and
to alter it and redistribute it freely, subject to the
following restrictions:
1. The origin of this software must not be misrepresented;
you must not claim that you wrote the original software.
If you use this software in a product, an acknowledgment
in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
-------------------------
Example :
Our example application uses a command line that has two
required switches and two optional switches. The app should abort
if the required switches are not present and continue with default
values if the optional switches are not present.
Sample command line :
MyApp.exe -p1 text1 text2 -p2 "this is a big argument" -opt1 -55 -opt2
Switches -p1 and -p2 are required.
p1 has two arguments and p2 has one.
Switches -opt1 and -opt2 are optional.
opt1 requires a numeric argument.
opt2 has no arguments.
Also, assume that the app displays a 'help' screen if the '-h' switch
is present on the command line.
#include "CmdLine.h"
void main(int argc, char **argv)
{
// our cmd line parser object
CCmdLine cmdLine;
// parse argc,argv
if (cmdLine.SplitLine(argc, argv) < 1)
{
// no switches were given on the command line, abort
ASSERT(0);
exit(-1);
}
// test for the 'help' case
if (cmdLine.HasSwitch("-h"))
{
show_help();
exit(0);
}
// get the required arguments
string p1_1, p1_2, p2_1;
// if any of these fail, we'll end up in the catch() block
p1_1 = cmdLine.GetArgument("-p1", 0);
p1_2 = cmdLine.GetArgument("-p1", 1);
p2_1 = cmdLine.GetArgument("-p2", 0);
// get the optional parameters
// convert to an int, default to '100'
int iOpt1Val = atoi(cmdLine.GetSafeArgument("-opt1", 0, 100));
// since opt2 has no arguments, just test for the presence of
// the '-opt2' switch
bool bOptVal2 = cmdLine.HasSwitch("-opt2");
.... and so on....
}
If this class is used in an MFC application, string is CString, else
it uses the STL 'string' type.
If this is an MFC app, you can use the __argc and __argv macros from
you CYourWinApp::InitInstance function in place of the standard argc
and argv variables.
------------------------------------------------------*/
#ifndef GCF_CMDLINE_H
#define GCF_CMDLINE_H
// tell the compiler to shut up
#pragma warning(disable:4786)
#include <Common/lofar_map.h>
#include <Common/lofar_string.h>
#include <Common/lofar_vector.h>
// handy little container for our argument vector
struct CCmdParam
{
vector<string> m_strings;
};
// this class is actually a map of strings to vectors
typedef map<string, CCmdParam> _CCmdLine;
// the command line parser class
class CCmdLine : public _CCmdLine
{
public:
/*------------------------------------------------------
int CCmdLine::SplitLine(int argc, char **argv)
parse the command line into switches and arguments.
returns number of switches found
------------------------------------------------------*/
int SplitLine(int argc, char **argv);
/*------------------------------------------------------
bool CCmdLine::HasSwitch(const char *pSwitch)
was the switch found on the command line ?
ex. if the command line is : app.exe -a p1 p2 p3 -b p4 -c -d p5
call return
---- ------
cmdLine.HasSwitch("-a") true
cmdLine.HasSwitch("-z") false
------------------------------------------------------*/
bool HasSwitch(const char *pSwitch);
/*------------------------------------------------------
string CCmdLine::GetSafeArgument(const char *pSwitch, int iIdx, const char *pDefault)
fetch an argument associated with a switch . if the parameter at
index iIdx is not found, this will return the default that you
provide.
example :
command line is : app.exe -a p1 p2 p3 -b p4 -c -d p5
call return
---- ------
cmdLine.GetSafeArgument("-a", 0, "zz") p1
cmdLine.GetSafeArgument("-a", 1, "zz") p2
cmdLine.GetSafeArgument("-b", 0, "zz") p4
cmdLine.GetSafeArgument("-b", 1, "zz") zz
------------------------------------------------------*/
string GetSafeArgument(const char *pSwitch, unsigned int iIdx, const char *pDefault = 0);
/*------------------------------------------------------
string CCmdLine::GetArgument(const char *pSwitch, int iIdx)
fetch a argument associated with a switch.
example :
command line is : app.exe -a p1 p2 p3 -b p4 -c -d p5
call return
---- ------
cmdLine.GetArgument("-a", 0) p1
cmdLine.GetArgument("-b", 1) returns an empty string
------------------------------------------------------*/
string GetArgument(const char *pSwitch, unsigned int iIdx);
/*------------------------------------------------------
int CCmdLine::GetArgumentCount(const char *pSwitch)
returns the number of arguments found for a given switch.
returns -1 if the switch was not found
------------------------------------------------------*/
int GetArgumentCount(const char *pSwitch);
protected:
/*------------------------------------------------------
protected member function
test a parameter to see if it's a switch :
switches are of the form : -x
where 'x' is one or more characters.
the first character of a switch must be non-numeric!
------------------------------------------------------*/
bool IsSwitch(const char *pParam);
};
#endif
...@@ -9,7 +9,8 @@ pkginclude_HEADERS = \ ...@@ -9,7 +9,8 @@ pkginclude_HEADERS = \
../include/GCF/GCF_PVUnsigned.h \ ../include/GCF/GCF_PVUnsigned.h \
../include/GCF/GCF_PVDynArr.h \ ../include/GCF/GCF_PVDynArr.h \
../include/GCF/CmdLine.h \ ../include/GCF/CmdLine.h \
../include/GCF/Utils.h ../include/GCF/Utils.h \
../include/GCF/GCF_Defines.h
DOCHDRS = $(pkginclude_HEADERS) DOCHDRS = $(pkginclude_HEADERS)
...@@ -27,5 +28,7 @@ libgcfcommon_la_SOURCES= $(DOCHDRS) \ ...@@ -27,5 +28,7 @@ libgcfcommon_la_SOURCES= $(DOCHDRS) \
GCF_PVUnsigned.cc \ GCF_PVUnsigned.cc \
GCF_PVDynArr.cc GCF_PVDynArr.cc
libgcfcommon_la_CPPFLAGS=-I$(top_srcdir)/include
include $(lofar_sharedir)/Makefile.common include $(lofar_sharedir)/Makefile.common
#include "Utils.h" #include <GCF/Utils.h>
#include <stdio.h> #include <stdio.h>
#include <assert.h> #include <assert.h>
#include <GCF/GCF_Defines.h> #include <GCF/GCF_Defines.h>
...@@ -66,5 +66,5 @@ bool Utils::isValidPropName(const char* propName) ...@@ -66,5 +66,5 @@ bool Utils::isValidPropName(const char* propName)
} }
} }
} }
return result; return true;// TODO: use regular expression to find out the name meets the convention
} }
#ifndef UTILS_H
#define UTILS_H
#include <Common/lofar_string.h>
#include <Common/lofar_list.h>
class Utils
{
public:
Utils();
~Utils();
static void getPropertyListString(string& propListString,
const list<string>& propertyList);
static void getPropertyListFromString(list<string>& propertyList,
const string& propListString);
static bool isValidPropName(const char* propName);
};
#endif // UTILS_H
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
%} %}
#endif #endif
/** /**
* This struct is the base event data container to exchange messages between two * This struct is the base event data container to exchange messages between two
* tasks. * tasks.
...@@ -53,6 +54,9 @@ ...@@ -53,6 +54,9 @@
* file and the nested key-value pairs from the specification file. This header * file and the nested key-value pairs from the specification file. This header
* file contains definitions of GCFEvent sub classes, one for each event. * file contains definitions of GCFEvent sub classes, one for each event.
*/ */
#define SIZEOF_EVENT(e) ((ssize_t) (sizeof((e).signal) + sizeof((e).length) + (e).length))
class GCFEvent class GCFEvent
{ {
public: public:
......
...@@ -114,7 +114,7 @@ struct GCFTimerEvent : public GCFEvent ...@@ -114,7 +114,7 @@ struct GCFTimerEvent : public GCFEvent
long sec; long sec;
long usec; long usec;
unsigned long id; unsigned long id;
const void* arg; void* arg;
}; };
#endif #endif
...@@ -87,6 +87,8 @@ void GCFTask::init(int argc, char** argv) ...@@ -87,6 +87,8 @@ void GCFTask::init(int argc, char** argv)
serviceFilesPrefix = serviceFilesPath + serviceFilesPrefix; serviceFilesPrefix = serviceFilesPath + serviceFilesPrefix;
INIT_LOGGER(serviceFilesPath + "log4cplus.properties");
if (GTMNameService::instance()->init(serviceFilesPrefix.c_str()) < 0) if (GTMNameService::instance()->init(serviceFilesPrefix.c_str()) < 0)
{ {
LOG_ERROR(LOFAR::formatString ( LOG_ERROR(LOFAR::formatString (
......
...@@ -26,9 +26,9 @@ DOCHDRS = $(pkginclude_HEADERS) \ ...@@ -26,9 +26,9 @@ DOCHDRS = $(pkginclude_HEADERS) \
Socket/GTM_SocketHandler.h \ Socket/GTM_SocketHandler.h \
Socket/GTM_ETHSocket.h Socket/GTM_ETHSocket.h
lib_LTLIBRARIES = libtm.la lib_LTLIBRARIES = libgcftm.la
libtm_la_SOURCES= $(DOCHDRS) \ libgcftm_la_SOURCES= $(DOCHDRS) \
GCF_Fsm.cc \ GCF_Fsm.cc \
GCF_Protocols.cc \ GCF_Protocols.cc \
GCF_Task.cc \ GCF_Task.cc \
...@@ -49,7 +49,7 @@ libtm_la_SOURCES= $(DOCHDRS) \ ...@@ -49,7 +49,7 @@ libtm_la_SOURCES= $(DOCHDRS) \
Socket/GTM_ETHSocket.cc \ Socket/GTM_ETHSocket.cc \
Socket/GCF_ETHRawPort.cc Socket/GCF_ETHRawPort.cc
libtm_la_CPPFLAGS=-I$(top_srcdir)/include libgcftm_la_CPPFLAGS=-I$(top_srcdir)/include
include $(lofar_sharedir)/Makefile.common include $(lofar_sharedir)/Makefile.common
...@@ -161,7 +161,7 @@ ssize_t GCFTCPPort::send(GCFEvent& e) ...@@ -161,7 +161,7 @@ ssize_t GCFTCPPort::send(GCFEvent& e)
if ((written = _pSocket->send(buf, packsize)) != packsize) if ((written = _pSocket->send(buf, packsize)) != packsize)
{ {
LOG_DEBUG(LOFAR::formatString ( LOG_DEBUG(LOFAR::formatString (
"truncated send: %s", "truncated send, error: %s",
strerror(errno))); strerror(errno)));
schedule_disconnected(); schedule_disconnected();
......
...@@ -3,12 +3,12 @@ check_PROGRAMS = echoapp ping ...@@ -3,12 +3,12 @@ check_PROGRAMS = echoapp ping
TESTS = #echoapp ping TESTS = #echoapp ping
echoapp_SOURCES = Echo.cc Echo_Protocol.cc echoapp_SOURCES = Echo.cc Echo_Protocol.cc
echoapp_LDADD = ../src/libtm.la echoapp_LDADD = ../src/libgcftm.la
echoapp_DEPENDENCIES = ../src/libtm.la $(LOFAR_DEPEND) echoapp_DEPENDENCIES = ../src/libgcftm.la $(LOFAR_DEPEND)
ping_SOURCES = Ping.cc Echo_Protocol.cc ping_SOURCES = Ping.cc Echo_Protocol.cc
ping_LDADD = ../src/libtm.la ping_LDADD = ../src/libgcftm.la
ping_DEPENDENCIES = ../src/libtm.la $(LOFAR_DEPEND) ping_DEPENDENCIES = ../src/libgcftm.la $(LOFAR_DEPEND)
AUTOGEN = autogen AUTOGEN = autogen
SUFFIXES = .ph SUFFIXES = .ph
......
#
# Name service configuration file.
#
# This file contains name and configuration information
# for tasks and their ports.
#
# For each task the host on which the task runs is specified
# with the 'host' attribute e.g.:
#
# [TASK_A]
# host=localhost
#
# For each SAP port the port type (TCP or UDP) can be
# specified with the .type' attribute e.g.:
#
# [TASK_B]
# host=localhost
# mysap.type=TCP
#
# For each SPP port the port type (.type), portnumber (.port)
# and host on which to find the SPP port (.host) can
# be specified e.g.
#
# [TASK_C]
# host=localhost
# myspp.type=UDP
# myspp.host=remotehost.remote.org
# myspp.port=20033
#
[PING]
host=localhost
client.type=TCP # SAP
[ECHO]
host=localhost
server.port=20031 # SPP
server.type=TCP
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment