diff --git a/engine/calldesc.go b/engine/calldesc.go old mode 100755 new mode 100644 diff --git a/engine/libstats.go b/engine/libstats.go old mode 100755 new mode 100644 diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go old mode 100755 new mode 100644 diff --git a/engine/loader_it_test.go b/engine/loader_it_test.go old mode 100755 new mode 100644 diff --git a/engine/model_helpers.go b/engine/model_helpers.go old mode 100755 new mode 100644 diff --git a/engine/model_helpers_test.go b/engine/model_helpers_test.go old mode 100755 new mode 100644 diff --git a/engine/models.go b/engine/models.go old mode 100755 new mode 100644 diff --git a/engine/resources.go b/engine/resources.go old mode 100755 new mode 100644 diff --git a/engine/storage_csv.go b/engine/storage_csv.go old mode 100755 new mode 100644 diff --git a/engine/storage_interface.go b/engine/storage_interface.go old mode 100755 new mode 100644 diff --git a/engine/storage_map.go b/engine/storage_map.go old mode 100755 new mode 100644 diff --git a/engine/storage_mongo_datadb.go b/engine/storage_mongo_datadb.go old mode 100755 new mode 100644 diff --git a/engine/storage_mongo_stordb.go b/engine/storage_mongo_stordb.go old mode 100755 new mode 100644 diff --git a/engine/storage_redis.go b/engine/storage_redis.go old mode 100755 new mode 100644 diff --git a/engine/storage_sql.go b/engine/storage_sql.go old mode 100755 new mode 100644 diff --git a/engine/storage_utils.go b/engine/storage_utils.go old mode 100755 new mode 100644 diff --git a/engine/stordb_it_test.go b/engine/stordb_it_test.go old mode 100755 new mode 100644 diff --git a/engine/tp_reader.go b/engine/tp_reader.go old mode 100755 new mode 100644 diff --git a/engine/tpcsvreader.go b/engine/tpcsvreader.go new file mode 100644 index 000000000..f03ae1e5b --- /dev/null +++ b/engine/tpcsvreader.go @@ -0,0 +1,38 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package engine + +import ( + "encoding/csv" + + "github.com/cgrates/cgrates/config" +) + +// TPcsvReader reads data from csv file based on template +type TPcsvReader struct { + fldsTpl []*config.CfgCdrField + srcType string + srcPath string + csvReaders map[string]*csv.Reader // map[fileName]*csv.Reader for each name in fldsTpl +} + +// Read implements TPReader interface +func (csv *TPcsvReader) Read() (itm interface{}, err error) { + return +} diff --git a/engine/tpimporter_csv.go b/engine/tpimporter_csv.go old mode 100755 new mode 100644 diff --git a/engine/tploader.go b/engine/tploader.go new file mode 100644 index 000000000..6f342d82c --- /dev/null +++ b/engine/tploader.go @@ -0,0 +1,34 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package engine + +import () + +// TPReader is the data source for TPLoader +type TPReader interface { + // Read will read one record from data source + Read() (interface{}, error) +} + +// TPLoader will read a record from TPReader and write it out to dataManager +type TPLoader struct { + srcType string // needed by Load for choosing destiantion + dataReader TPReader // provides data to load + dm *DataManager // writes data to load +}