ns_Game::ns_Game(NETFunc::Game * game) : ns_Object<NETFunc::Game, ns_Game>(game) { list.push_back(Struct(ICON, &m_launched)); list.push_back(Struct(STRING, &m_name)); list.push_back(Struct(ICON, &m_locked)); list.push_back(Struct(ICON, &m_closed)); list.push_back(Struct(INT, &m_players)); };
void f3() { auto FindFunctionCaller = Struct(); FindFunctionCaller.FinalVirtualMethod(); }
Struct const &module1_constants::c1() { static Struct const instance = Struct( ::apache::thrift::detail::wrap_argument<1>(201), ::apache::thrift::detail::wrap_argument<2>("module1_str")); return instance; }
ULXR_API_IMPL(bool) ValueParser::testEndElement(const XML_Char *name) { ULXR_TRACE(ULXR_PCHAR("ValueParser::testEndElement(const XML_Char*)")); if (states.size() <= 1) throw RuntimeException(ApplicationError, ulxr_i18n(ULXR_PCHAR("abnormal program behaviour: ValueParser::testEndElement() had no states left"))); std::auto_ptr<ValueState> curr(getTopValueState()); states.pop(); /* ULXR_DOUT (ULXR_GET_STRING(name) << ULXR_PCHAR(" = cur-val: ") << std::hex << (void*) curr->getValue() << ULXR_PCHAR(" state: ") << std::hex << (void*) curr->getParserState() << ULXR_PCHAR(" prev state: ") << std::hex << (void*) curr->getPrevParserState() << std::dec); */ states.top()->setPrevParserState(curr->getParserState()); switch(curr->getParserState() ) { case eBoolean: assertEndElement(name, "boolean"); getTopValueState()->takeValue(new Value(Boolean(curr->getCharData())) ); break; case eInt: assertEndElement(name, "int"); getTopValueState()->takeValue(new Value(Integer(curr->getCharData())) ); break; case eI4: assertEndElement(name, "i4"); getTopValueState()->takeValue(new Value(Integer(curr->getCharData())) ); break; case eDouble: assertEndElement(name, "double"); getTopValueState()->takeValue(new Value(Double(curr->getCharData())) ); break; case eString: assertEndElement(name, "string"); getTopValueState()->takeValue(new Value(RpcString(curr->getCharData())) ); break; case eBase64: { assertEndElement(name, "base64"); Base64 b64; b64.setBase64(curr->getCharData()); // move raw data! getTopValueState()->takeValue(new Value(b64)); } break; case eDate: assertEndElement(name , "dateTime.iso8601"); getTopValueState()->takeValue(new Value(DateTime(curr->getCharData())) ); break; case eMember: assertEndElement(name, "member"); getTopValueState()->takeValue (curr->getValue()); break; case eName: assertEndElement(name, "name"); getTopValueState()->takeName((curr->getCharData()) ); break; case eValue: assertEndElement(name, "value"); if (curr->getValue() == 0) // special case { if(curr->getPrevParserState() == eArray) // not empty Array getTopValueState()->takeValue (new Value(Array())); else if (curr->getPrevParserState() == eStruct) // not empty Struct getTopValueState()->takeValue (new Value(Struct())); else // no type tag defaults to string getTopValueState()->takeValue (new Value(RpcString(curr->getCharData()))); } else getTopValueState()->takeValue (curr->getValue()); break; case eStruct: assertEndElement(name, "struct"); getTopValueState()->takeValue (curr->getValue()); break; case eArray: assertEndElement(name, "array"); getTopValueState()->takeValue (curr->getValue()); break; case eData: assertEndElement(name, "data"); getTopValueState()->takeValue (curr->getValue()); break; default: states.push(curr.release()); return false; } return true; }
ValueParser::testStartElement(const XML_Char* name, const XML_Char** /* atts */) { ULXR_TRACE(ULXR_PCHAR("ValueParser::testStartElement(const XML_Char*, const char**)") << ULXR_PCHAR("\n name: ") << ULXR_GET_STRING(name) ); switch(getTopValueState()->getParserState() ) { case eNone: if (strcmp(name, "value") == 0) states.push(new ValueState(eValue)); else return false; break; case eValue: if (strcmp(name, "array") == 0) states.push(new ValueState(eArray)); else if (strcmp(name, "struct") == 0) states.push(new ValueState(eStruct)); else if (strcmp(name, "boolean") == 0) states.push(new ValueState(eBoolean)); else if (strcmp(name, "int") == 0) states.push(new ValueState(eInt)); else if (strcmp(name, "i4") == 0) states.push(new ValueState(eI4)); else if (strcmp(name, "double") == 0) states.push(new ValueState(eDouble)); else if (strcmp(name, "string") == 0) states.push(new ValueState(eString)); else if (strcmp(name, "base64") == 0) states.push(new ValueState(eBase64)); else if (strcmp(name, "dateTime.iso8601") == 0) states.push(new ValueState(eDate)); else return false; break; case eStruct: if (strcmp(name, "member") == 0) { if (getTopValueState()->getValue() == 0) // first closing member adds struct-item getTopValueState()->takeValue(new Value(Struct()), false); states.push(new MemberState(eMember, getTopValueState()->getValue())); } else return false; break; case eMember: if (strcmp(name, "name") == 0) states.push(new ValueState(eName)); else if (strcmp(name, "value") == 0) states.push(new ValueState(eValue)); else return false; break; case eArray: if (strcmp(name, "data") == 0) states.push(new ArrayState(eData)); else return false; break; case eData: if (strcmp(name, "value") == 0) // closing value adds data-items states.push(new ValueState(eValue)); else return false; break; default: return false; } return true; }