Changeset 1201 for XIOS/dev/dev_olga/src/filter/store_filter.cpp
- Timestamp:
- 07/07/17 18:17:49 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/filter/store_filter.cpp
r1158 r1201 6 6 namespace xios 7 7 { 8 CStoreFilter::CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid) 8 CStoreFilter::CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid, 9 bool detectMissingValues /*= false*/, double missingValue /*= 0.0*/) 9 10 : CInputPin(gc, 1) 10 11 , gc(gc) 11 12 , context(context) 12 13 , grid(grid) 14 , detectMissingValues(detectMissingValues) 15 , missingValue(missingValue) 13 16 { 14 17 if (!context) … … 75 78 void CStoreFilter::onInputReady(std::vector<CDataPacketPtr> data) 76 79 { 77 packets.insert(std::make_pair(data[0]->timestamp, data[0])); 80 CDataPacketPtr packet = data[0]; 81 82 packets.insert(std::make_pair(packet->timestamp, packet)); 78 83 // The packet is always destroyed by the garbage collector 79 84 // so we register but never unregister 80 gc.registerObject(this, data[0]->timestamp); 85 gc.registerObject(this, packet->timestamp); 86 87 if (detectMissingValues) 88 { 89 const size_t nbData = packet->data.numElements(); 90 for (size_t idx = 0; idx < nbData; ++idx) 91 { 92 if (NumTraits<double>::isnan(packet->data(idx))) 93 packet->data(idx) = missingValue; 94 } 95 } 81 96 } 82 97
Note: See TracChangeset
for help on using the changeset viewer.