etch-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vei...@apache.org
Subject svn commit: r1679582 - /etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h
Date Fri, 15 May 2015 15:02:28 GMT
Author: veithm
Date: Fri May 15 15:02:27 2015
New Revision: 1679582

URL: http://svn.apache.org/r1679582
Log:
Add macro for validators static get function

The static Get function in the validator classes was a code
duplicate. It has been extracted into a macro which can then
by used by the different validator classes.

Change-Id: I13d5f33a930f58f5b7a73371d79a184603e2e03c

Modified:
    etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h

Modified: etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h
URL: http://svn.apache.org/viewvc/etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h?rev=1679582&r1=1679581&r2=1679582&view=diff
==============================================================================
--- etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h (original)
+++ etch/trunk/binding-cpp/runtime/include/serialization/EtchValidator.h Fri May 15 15:02:27
2015
@@ -44,6 +44,30 @@ class EtchValidatorStringRuntimeListener
     return SValidatorCache##validatorClassName.get(runtime);                            
       \
 }
 
+#define VALIDATOR_GET_DEF()                                                             
                                           \
+    static status_t Get(EtchRuntime* runtime, capu::uint32_t ndim, capu::SmartPointer<EtchValidator>
&val);
+
+
+#define VALIDATOR_GET_IMPL(validatorClassName)                                          
                                           \
+    status_t validatorClassName::Get(EtchRuntime* runtime, capu::uint32_t ndim, capu::SmartPointer<EtchValidator>
&val) {           \
+                                                                                        
                                           \
+                                                                                        
                                           \
+    if (ndim > MAX_NDIMS) {                                                          
                                              \
+        return ETCH_EINVAL;                                                             
                                           \
+    }                                                                                   
                                           \
+    if (ndim >= MAX_CACHED) {                                                        
                                              \
+        val = new validatorClassName(runtime, ndim);                                    
                                           \
+        return ETCH_OK;                                                                 
                                           \
+    }                                                                                   
                                           \
+    if (Validators(runtime)[ndim].get() == NULL) {                                      
                                           \
+        Validators(runtime)[ndim] = new validatorClassName(runtime, ndim);              
                                           \
+        runtime->registerListener(&SRuntimeChangedListener);                     
                                                  \
+        ETCH_LOG_TRACE(runtime->getLogger(), runtime->getLogger().getValidatorContext(),
"##validatorClassName has been created");  \
+    }                                                                                   
                                           \
+    val = Validators(runtime)[ndim];                                                    
                                           \
+    return ETCH_OK;                                                                     
                                           \
+}
+
 #include "common/EtchObject.h"
 #include "support/EtchRuntime.h"
 



Mime
View raw message