Пример #1
0
void schema_flat_map_impl< K, V >::get_str_schema( std::string& s )
{
   if( str_schema != "" )
   {
      s = str_schema;
      return;
   }

   std::vector< std::shared_ptr< abstract_schema > > deps;
   get_deps( deps );
   std::string k_name, v_name;
   deps[0]->get_name(k_name);
   deps[1]->get_name(v_name);

   std::string my_name;
   get_name( my_name );
   fc::mutable_variant_object mvo;
   mvo("name", my_name)
      ("type", "map")
      ("ktype", k_name)
      ("vtype", v_name)
      ;

   str_schema = fc::json::to_string( mvo );
   s = str_schema;
   return;
}
Пример #2
0
void schema_optional_impl< E >::get_str_schema( std::string& s )
{
   if( str_schema != "" )
   {
      s = str_schema;
      return;
   }

   std::vector< std::shared_ptr< abstract_schema > > deps;
   get_deps( deps );
   std::string e_type;
   deps[0]->get_name(e_type);

   std::string my_name;
   get_name( my_name );
   fc::mutable_variant_object mvo;
   mvo("name", my_name)
      ("type", "optional")
      ("etype", e_type)
      ;

   str_schema = fc::json::to_string( mvo );
   s = str_schema;
   return;
}
Пример #3
0
            void schema_static_variant_impl<Types...>::get_str_schema(std::string &s) {
                if (str_schema != "") {
                    s = str_schema;
                    return;
                }

                std::vector<std::shared_ptr<abstract_schema>> deps;
                get_deps(deps);
                std::vector<std::string> e_types;
                for (std::shared_ptr<abstract_schema> &schema : deps) {
                    e_types.emplace_back();
                    schema->get_name(e_types.back());
                }

                std::string my_name;
                get_name(my_name);
                fc::mutable_variant_object mvo;
                mvo("name", my_name)
                        ("type", "static_variant")
                        ("etypes", e_types);

                str_schema = fc::json::to_string(mvo);
                s = str_schema;
                return;
            }
Пример #4
0
 void operator()( const char* name )const
 {
    if( (value.*member).valid() )
       mvo( name, value.*member );
 }