21 #include "jubatus/util/lang/shared_ptr.h" 
   22 #include "jubatus/util/text/json.h" 
   24 #include "../common/exception.hpp" 
   25 #include "../common/jsonconfig.hpp" 
   26 #include "../nearest_neighbor/nearest_neighbor_factory.hpp" 
   27 #include "../unlearner/unlearner_factory.hpp" 
   28 #include "../storage/column_table.hpp" 
   29 #include "../recommender/recommender_factory.hpp" 
   34 using jubatus::util::lang::shared_ptr;
 
   35 using jubatus::util::text::json::json;
 
   43 struct lof_config : 
public lof_storage::config {
 
   47   template <
typename Ar>
 
   52         & JUBA_MEMBER(parameter);
 
   56 struct light_lof_config : 
public light_lof::config {
 
   59   jubatus::util::data::optional<std::string> 
unlearner;
 
   60   jubatus::util::data::optional<jubatus::core::common::jsonconfig::config>
 
   63   template <
typename Ar>
 
   68         & JUBA_MEMBER(parameter)
 
   69         & JUBA_MEMBER(unlearner)
 
   80     lof_config conf = config_cast_check<lof_config>(param);
 
   82     return shared_ptr<anomaly_base>(
new lof(
 
   86             conf.parameter, 
id)));
 
   87   } 
else if (name == 
"light_lof") {
 
   88     light_lof_config conf = config_cast_check<light_lof_config>(param);
 
   90     jubatus::util::lang::shared_ptr<storage::column_table>
 
   92     jubatus::util::lang::shared_ptr<nearest_neighbor::nearest_neighbor_base>
 
   94             conf.method, conf.parameter, nearest_neighbor_table, 
id));
 
   97       if (!conf.unlearner_parameter) {
 
  101               "unlearner is set but unlearner_parameter is not found"));
 
  103       jubatus::util::lang::shared_ptr<unlearner::unlearner_base> 
unlearner(
 
  106               *conf.unlearner_parameter));
 
  107       return shared_ptr<anomaly_base>(
 
  108           new light_lof(conf, 
id, nearest_neighbor_engine, unlearner));
 
  111     return jubatus::util::lang::shared_ptr<anomaly_base>(
 
  112         new light_lof(conf, 
id, nearest_neighbor_engine));
 
T config_cast_check(const config &c)
void serialize(member_collector &mem, jubatus::util::data::serialization::named_value< T > &v)
static jubatus::util::lang::shared_ptr< anomaly_base > create_anomaly(const std::string &name, const common::jsonconfig::config ¶m, const std::string &id)
static jubatus::util::lang::shared_ptr< recommender_base > create_recommender(const std::string &name, const common::jsonconfig::config ¶m, const std::string &id)
shared_ptr< unlearner_base > create_unlearner(const std::string &name, const common::jsonconfig::config &config)
jubatus::util::data::optional< jubatus::core::common::jsonconfig::config > unlearner_parameter
jubatus::core::common::jsonconfig::config parameter
#define JUBATUS_EXCEPTION(e)
jubatus::util::data::optional< std::string > unlearner
shared_ptr< nearest_neighbor_base > create_nearest_neighbor(const std::string &name, const common::jsonconfig::config &config, shared_ptr< storage::column_table > table, const std::string &id)