示例#1
0
 bool check_depth(const char* type)
 {
     if (depth <= 0) {
         the_error.reset(new error::TypeMismatchError("object", type));
         return false;
     }
     return true;
 }
示例#2
0
    void PrepareForReuse()
    {
        depth = 0;
        state = -1;
        the_error.reset();
        reset_flags();
        handler_0.PrepareForReuse();

    }
示例#3
0
    void set_missing_required(const char* name)
    {
        if (the_error.empty() || the_error->type() != error::MISSING_REQUIRED)
            the_error.reset(new error::RequiredFieldMissingError());

        std::vector<std::string>& missing =
            static_cast<error::RequiredFieldMissingError*>(the_error.get())->missing_members();

        missing.push_back(name);
    }
示例#4
0
 bool set_type_mismatch(const char* actual_type)
 {
     the_error.reset(new error::TypeMismatchError(type_name(), actual_type));
     return false;
 }
示例#5
0
 bool set_out_of_range(const char* actual_type)
 {
     the_error.reset(new error::NumberOutOfRangeError(type_name(), actual_type));
     return false;
 }
示例#6
0
 void PrepareForReuse()
 {
     the_error.reset();
 }
示例#7
0
 bool checked_event_forwarding(bool success)
 {
     if (!success)
         the_error.reset(new error::ObjectMemberError(current_member_name()));
     return success;
 }