コード例 #1
0
ファイル: test_use.cpp プロジェクト: jiankangshiye/sqlitepp
void object::test<5>()
{
	int id = 1;
	int MAX_RECORD = 100;

	st << utf("insert into some_table(id) values(:id)"), use(id);
	ensure("no row", !se.last_exec());
	
	se << utf(L"begin");
	for (; id <= MAX_RECORD; ++id)
	{
		st.reset(true);
		st.exec();
		ensure("row", !se.last_exec());
	}
	se << utf(L"commit");

	int id2;
	st << utf(L"select id from some_table"), into(id2);

	for (id = 1; st.exec(); ++id)
	{
		ensure("row", se.last_exec());
		ensure_equals("id", id2, id);
	}
	ensure_equals("MAX_RECORD", id - 1, MAX_RECORD);
	ensure_equals("MAX_RECORD", id2, MAX_RECORD);
}
コード例 #2
0
void object::test<1>()
{
	ensure("empty query", q.empty() );

	q.sql(utf(L"qaz"));
	ensure_equals("q.sql() == qaz", q.sql(), utf(L"qaz") );
}
コード例 #3
0
void object::test<2>()
{
	{
		transaction t(se);
		record r1(1, utf(L"Eugeny"), 566.24);
		r1.insert(se);
		t.commit();
	}
	ensure( "no active txn", !se.active_txn() );

	int rows;
	se << utf(L"select count(*) from some_table"), into(rows);
	ensure_equals("commit", rows, 1);
}
コード例 #4
0
ファイル: test_into.cpp プロジェクト: Fadis/SQLitepp_CMake
void object::test<3>()
{
	try
	{
		int id;
		st << utf(L"select id from some_table"), into(id, utf(L"id_ZZZ"));
		st.exec();
		fail( "exception expected" );
	}
	catch(sqlitepp::exception const&)
	{
		ensure( "statement not prepared", !st.is_prepared() );
	}
}
コード例 #5
0
ファイル: test_into.cpp プロジェクト: Fadis/SQLitepp_CMake
void object::test<2>()
{
	record r1(1, utf(L"Egor"), 345.2);
	r1.insert(se);

	record r2;
	st << utf(L"select id, name, salary from some_table"),
		into(r2.salary, utf(L"salary")), into(r2.id, utf(L"id")), into(r2.name, utf(L"name"));

	ensure( "row selected", st.exec() );
	ensure("row", se.last_exec());
	ensure_equals(r1, r2);
	ensure("single row", !st.exec() );
}
コード例 #6
0
ファイル: test_into.cpp プロジェクト: Fadis/SQLitepp_CMake
void object::test<1>()
{
	record r1(1, utf(L"Ignat"), 345.2);
	r1.insert(se);

	record r2;
	st << utf(L"select * from some_table where id = 1"), 
		into(r2.id), into(r2.name), into(r2.salary);

	ensure("select completed", st.exec());
	ensure("row", se.last_exec());
	ensure_equals(r1, r2);
	ensure( "single row", !st.exec() );
}
コード例 #7
0
ファイル: test_use.cpp プロジェクト: jiankangshiye/sqlitepp
void object::test<1>()
{
	record recs[2] = { record(1, utf(L"Petya"), 123.45), record(2, utf(L"Vasya"), 678.90) };

	// insert records

	for (size_t i = 0; i < dimof(recs); ++i)
	{
		st << utf(L"insert into some_table values( :id, :name, :salary, NULL)"),
			use(recs[i].id), use(recs[i].name), use(recs[i].salary);
		ensure("row inserted", !st.exec() );
		ensure("no data", !se.last_exec());
	}

	// count inserted record
	int count;
	se << utf(L"select count(*) from some_table"), into(count);
	ensure("row", se.last_exec());
	ensure_equals("row count", count, static_cast<int>(dimof(recs)) );

	// check inserted records
	record r;
	st << utf(L"select id, name, salary from some_table"),
		into(r.id, utf(L"id")), into(r.name, utf(L"name")), into(r.salary, utf(L"salary"));
	for (count = 0; st.exec(); ++count)
	{
		ensure("row", se.last_exec());
		ensure_equals(r, recs[count]);
	}
	ensure_equals("row count", count, static_cast<int>(dimof(recs)));
}
コード例 #8
0
ファイル: test_use.cpp プロジェクト: jiankangshiye/sqlitepp
void object::test<3>()
{
	try
	{
		int id;
		st << utf(L"insert into some_table(id, name, salary) values( :id, '', 0)"),
			use(id, utf(L"id_ZZZ"));
		st.exec();
		fail( "exception expected" );
	}
	catch (sqlitepp::no_such_column const&)
	{
		ensure( "statement not prepared", !st.is_prepared() );
	}
}
コード例 #9
0
ファイル: test_into.cpp プロジェクト: Fadis/SQLitepp_CMake
void object::test<4>()
{
	record r1(1, utf(L"Gosha"), 634.4);
	r1.insert(se);

	record r2;
	st << utf(L"select * from some_table where id = 1"), 
		into(r2.id), into(r2.name), into(r2.salary), into(r2.data);

	ensure("select completed", st.exec());
	ensure("row", se.last_exec());
	ensure_equals(r1, r2);
	ensure("empty blob", r2.data.empty());
	ensure( "single row", !st.exec() );
}
コード例 #10
0
ファイル: transaction.cpp プロジェクト: huangqinjin/sqlitepp
transaction::transaction(session& s, type t)
	: s_(&s)
	, do_rollback_(false)
{
	if ( s_->active_txn() )
	{
		throw nested_txn_not_supported();
	}

	char const* begin_cmd;
	switch ( t )
	{
	case deferred:
		begin_cmd = "begin deferred";
		break;
	case immediate:
		begin_cmd = "begin immediate";
		break;
	case exclusive:
		begin_cmd = "begin exclusive";
		break;
	default:
		assert(false && "unknown transaction type");
		begin_cmd = "begin";
		break;
	}

	*s_ << utf(begin_cmd);
	s_->active_txn_ = this;
	do_rollback_ = true;
}
コード例 #11
0
ファイル: sceCcc.cpp プロジェクト: ANR2ME/ppsspp
int sceCccUTF8toUTF16(u32 dstAddr, u32 dstSize, u32 srcAddr)
{
	const auto src = PSPConstCharPointer::Create(srcAddr);
	auto dst = PSPWCharPointer::Create(dstAddr);
	if (!dst.IsValid() || !src.IsValid())
	{
		ERROR_LOG(HLE, "sceCccUTF8toUTF16(%08x, %d, %08x): invalid pointers", dstAddr, dstSize, srcAddr);
		return 0;
	}

	// Round dstSize down if it represents half a character.
	const auto dstEnd = PSPWCharPointer::Create(dstAddr + (dstSize & ~1));

	DEBUG_LOG(HLE, "sceCccUTF8toUTF16(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
	UTF8 utf(src);
	int n = 0;
	while (u32 c = utf.next())
	{
		if (dst + UTF16LE::encodeUnits(c) >= dstEnd)
			break;
		dst += UTF16LE::encode(dst, c);
		n++;
	}

	if (dst < dstEnd)
		*dst++ = 0;

	CBreakPoints::ExecMemCheck(srcAddr, false, utf.byteIndex(), currentMIPS->pc);
	CBreakPoints::ExecMemCheck(dstAddr, true, dst.ptr - dstAddr, currentMIPS->pc);
	return n;
}
コード例 #12
0
ファイル: draw_buffer.cpp プロジェクト: AdmiralCurtiss/ppsspp
void DrawBuffer::MeasureTextCount(int font, const char *text, int count, float *w, float *h) {
	const AtlasFont &atlasfont = *atlas->fonts[font];

	unsigned int cval;
	float wacc = 0;
	float maxX = 0.0f;
	int lines = 1;
	UTF8 utf(text);
	while (true) {
		if (utf.end())
			break;
		if (utf.byteIndex() >= count)
			break;
		cval = utf.next();
		// Translate non-breaking space to space.
		if (cval == 0xA0) {
			cval = ' ';
		}
		if (cval == '\n') {
			maxX = std::max(maxX, wacc);
			wacc = 0;
			lines++;
			continue;
		} else if (cval == '&' && utf.peek() != '&') {
			// Ignore lone ampersands
			continue;
		}
		const AtlasChar *c = atlasfont.getChar(cval);
		if (c) {
			wacc += c->wx * fontscalex;
		}
	}
	if (w) *w = std::max(wacc, maxX);
	if (h) *h = atlasfont.height * fontscaley * lines;
}
コード例 #13
0
/// \brief		Update Kalman filter
void UnscentedKalmanFilter::updateUKF(vnl_vector<double> u, vnl_vector<double> z)
{
	// create Sigma points X for the current estimate distribution
	vnl_matrix<double> X(N,2*N+1);
	sigmas(x_hat, P_hat+Q, sqrt(C), X);
	
	vnl_matrix<double> Dbg;

	qDebug() << "X: "; 
	for( int i = 0; i<6; i++)
	{
		qDebug() << X(i,0) << " " << X(i,1) << " " << X(i,2) << " " << X(i,3) << " " << X(i,4) << " " << X(i,5) << " "
			<< X(i,6) << " " << X(i,7) << " " << X(i,8) << " " << X(i,9) << " " << X(i,10) << " " << X(i,11)
			<< " " << X(i,12);
	}

	// apply unscented transformation for process model 
	vnl_vector<double> x1(6);
	vnl_matrix<double> X1(N,2*N+1), P1(N,N), X2(N,2*N+1);
	utf(X, u, x1, X1, P1, X2);

	// apply unscented transformation for observation model
	vnl_vector<double> z1(M);
	vnl_matrix<double> Z1(M,2*M+1), P2(M,M), Z2(M,2*M+1);
	utg(X1, z1, Z1, P2, Z2);
	// define transformated cross-covariance
	vnl_matrix<double> WC(2*N+1,2*N+1,0.0);
	WC.set_diagonal(Wc.get_row(0));
	vnl_matrix<double> P12 = X2*WC*Z2.transpose();
	// perform state update
	K = P12*vnl_matrix_inverse<double>(P2);
	x_hat = x1 + K*(z-z1);
	// perform covariance update
	P_hat = P1 - K*P12.transpose();
}
コード例 #14
0
ファイル: sceCcc.cpp プロジェクト: BogsyP/ppsspp
int sceCccUTF16toSJIS(u32 dstAddr, int dstSize, u32 srcAddr)
{
	PSPWCharPointer src;
	PSPCharPointer dst;
	dst = dstAddr;
	src = srcAddr;

	if (!dst.IsValid() || !src.IsValid())
	{
		ERROR_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x): invalid pointers", dstAddr, dstSize, srcAddr);
		return 0;
	}
	if (!ucs2jisTable.IsValid())
	{
		ERROR_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x): table not loaded", dstAddr, dstSize, srcAddr);
		return 0;
	}

	DEBUG_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
	UTF16LE utf(src);
	int n = 0;
	while (u32 c = utf.next())
	{
		dst += ShiftJIS::encode(dst, __CccUCStoJIS(c, errorSJIS));
		n++;
	}
	return n;
}
コード例 #15
0
std::string Window_Message::ParseCommandCode(int call_depth) {
	int parameter;
	bool is_valid;
	// sub_code is used by chained arguments like \v[\v[1]]
	// In that case sub_code contains the result from \v[1]
	int sub_code = -1;
	uint32_t cmd_char = *text_index;
	if (std::distance(text_index, end) > 3 &&
		*boost::next(text_index, 2) == utf('\\') &&
		tolower(*boost::next(text_index, 3)) == utf('v')) {
		++(++(++text_index));
		// The result is an int value, str-to-int is safe in this case
		std::stringstream ss;
		ss << ParseCommandCode(++call_depth);
		ss >> sub_code;
	}
コード例 #16
0
ファイル: sceCcc.cpp プロジェクト: ANR2ME/ppsspp
int sceCccUTF16toSJIS(u32 dstAddr, u32 dstSize, u32 srcAddr)
{
	const auto src = PSPConstWCharPointer::Create(srcAddr);
	auto dst = PSPCharPointer::Create(dstAddr);
	if (!dst.IsValid() || !src.IsValid())
	{
		ERROR_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x): invalid pointers", dstAddr, dstSize, srcAddr);
		return 0;
	}
	if (!ucs2jisTable.IsValid())
	{
		ERROR_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x): table not loaded", dstAddr, dstSize, srcAddr);
		return 0;
	}

	const auto dstEnd = PSPCharPointer::Create(dstAddr + dstSize);

	DEBUG_LOG(HLE, "sceCccUTF16toSJIS(%08x, %d, %08x)", dstAddr, dstSize, srcAddr);
	UTF16LE utf(src);
	int n = 0;
	while (u32 c = utf.next())
	{
		if (dst + ShiftJIS::encodeUnits(c) >= dstEnd)
			break;
		dst += ShiftJIS::encode(dst, __CccUCStoJIS(c, errorSJIS));
		n++;
	}

	if (dst < dstEnd)
		*dst++ = 0;

	CBreakPoints::ExecMemCheck(srcAddr, false, utf.shortIndex() * sizeof(uint16_t), currentMIPS->pc);
	CBreakPoints::ExecMemCheck(dstAddr, true, dst.ptr - dstAddr, currentMIPS->pc);
	return n;
}
コード例 #17
0
ファイル: test_use.cpp プロジェクト: jiankangshiye/sqlitepp
void object::test<6>()
{
	se << "insert into some_table values(:id, :name, :salary, NULL)",
		use(1), use("zzz"), use(999);
	se << "insert into some_table values(:id, :name, :salary, NULL)",
		use(2), use("aaa"), use(111);

	se << "insert into some_table values(:id, :name, :salary, NULL)",
		use(3), use("ddd", utf(":name")), use(333);
	se << "insert into some_table values(:id, :name, :salary, NULL)",
		use(4), use("qqq", utf(":name")), use(222);

	int count;
	se << utf(L"select count(*) from some_table"), into(count);
	ensure_equals("row count", count, 4);
}
コード例 #18
0
ファイル: transaction.cpp プロジェクト: huangqinjin/sqlitepp
void transaction::commit()
{
	if ( s_ )
	{
		*s_ << utf("commit");
	}
	do_rollback_ = false;
}
コード例 #19
0
void object::test<1>()
{
	int rows;
	ensure( "no active txn", !se.active_txn() );
	{
		transaction t(se);
		ensure_equals( "this active txn", se.active_txn(), &t );
		
		record r1(1, utf(L"Dima"), 566.24);
		r1.insert(se);

		se << utf(L"select count(*) from some_table"), into(rows);
		ensure_equals("row inserted", rows, 1);
	}	
	ensure( "no active txn", !se.active_txn() );
	se << utf(L"select count(*) from some_table"), into(rows);
	ensure_equals("rollback", rows, 0);
}
コード例 #20
0
ファイル: custui.cpp プロジェクト: p0nley/mame
int CALLBACK ui_menu_font_ui::EnumFontFamiliesExProc(const LOGFONT *lpelfe, const TEXTMETRIC *lpntme, DWORD FontType, LPARAM lParam)
{
	std::vector<std::string> *lpc = (std::vector<std::string>*)lParam;
	std::string utf((char *)lpelfe->lfFaceName);
	if (utf[0] != '@')
		lpc->push_back(utf);

	return 1;
}
コード例 #21
0
ファイル: HippoHTTP.cpp プロジェクト: nihed/magnetism
bool
HippoHTTP::writeToStreamAsUTF8(IStream *stream,
                               WCHAR   *str,
                               HippoHTTPAsyncHandler *handler)
{

    HippoUStr utf(str);
    long bytesTotal = (long) strlen(utf.c_str());
    bool ret = writeAllToStream(stream, (void *)utf.c_str(), bytesTotal, handler);
    return ret;
}
コード例 #22
0
ファイル: utils.cpp プロジェクト: tweimer/miranda-ng
void ShowMessageInline(const MCONTACT hContact, const wchar_t *msg) {
	wchar_t buff[1024];
	mir_snwprintf(buff, L"%s%s", _A2W(LANG_INLINE_PREFIX), msg);
	T2Utf utf(buff);

	PROTORECVEVENT pre = {0};
	pre.timestamp = time(0);
	pre.szMessage = utf;
	pre.flags = PREF_BYPASS_OTR;
	ProtoChainRecvMsg(hContact, &pre);	
}
コード例 #23
0
ファイル: test_session.cpp プロジェクト: velimir0xff/sqlitepp
void object::test<3>()
{
    try
    {
        se << utf(L"select * from undefined_table");
        fail( "exception expected" );
    }
    catch (sqlitepp::exception const&)
    {
    }
}
コード例 #24
0
ファイル: transaction.cpp プロジェクト: huangqinjin/sqlitepp
void transaction::rollback()
{
	if ( do_rollback_ && s_ )
	{
		*s_ << utf("rollback");
	}
	if ( s_ )
	{
		s_->active_txn_ = nullptr;
	}
	do_rollback_ = false;
}
コード例 #25
0
void object::test<4>()
{
	try
	{
		se << utf(L"qaz");
		fail( "exception expected");
	}
	catch (sqlitepp::exception const& ex)
	{
		ensure( "error code", ex.code() != 0 );
		ensure( "what", ex.what() != 0 );
	}
}
コード例 #26
0
ファイル: tupvideoproperties.cpp プロジェクト: bedna-KU/tupi
TupVideoProperties::TupVideoProperties(const TupExportWidget *widget) : TupExportWizardPage(tr("Set Animation Properties"))
{
    setTag("PROPERTIES");

    QLocale utf(QLocale::AnyLanguage, QLocale::AnyCountry);
    isOk = false;

    connect(widget, SIGNAL(saveVideoToServer()), this, SLOT(postIt()));

    QWidget *container = new QWidget;
    QVBoxLayout *layout = new QVBoxLayout(container);

    QLabel *titleLabel = new QLabel(tr("Title"));
    titleEdit = new QLineEdit(tr("My Video"));
    titleEdit->setLocale(utf);
    connect(titleEdit, SIGNAL(textChanged(const QString &)), this, SLOT(resetTitleColor(const QString &)));
    titleLabel->setBuddy(titleEdit);

    QLabel *topicsLabel = new QLabel(tr("Topics"));
    topicsEdit = new QLineEdit(tr("#topic1 #topic2 #topic3"));
    topicsEdit->setLocale(utf);
    connect(topicsEdit, SIGNAL(textChanged(const QString &)), this, SLOT(resetTopicsColor(const QString &)));
    topicsLabel->setBuddy(topicsEdit);

    QLabel *descLabel = new QLabel(tr("Description"));

    descText = new QTextEdit;
    descText->setLocale(utf);
    descText->setAcceptRichText(false);
    descText->setFixedHeight(80);
    descText->setText(tr("Just a little taste of my style :)"));

    QHBoxLayout *exportLayout = new QHBoxLayout;
    exportLayout->setAlignment(Qt::AlignHCenter);

    QHBoxLayout *topLayout = new QHBoxLayout;
    topLayout->addWidget(titleLabel);
    topLayout->addWidget(titleEdit);

    QHBoxLayout *middleLayout = new QHBoxLayout;
    middleLayout->addWidget(topicsLabel);
    middleLayout->addWidget(topicsEdit);

    layout->addLayout(exportLayout);
    layout->addLayout(topLayout);
    layout->addLayout(middleLayout);
    layout->addWidget(descLabel);
    layout->addWidget(descText);

    setWidget(container);
}
コード例 #27
0
ファイル: sceCcc.cpp プロジェクト: BogsyP/ppsspp
u32 sceCccDecodeUTF8(u32 dstAddrAddr)
{
	auto dstp = PSPPointer<PSPCharPointer>::Create(dstAddrAddr);

	if (!dstp.IsValid() || !dstp->IsValid()) {
		ERROR_LOG(HLE, "sceCccDecodeUTF8(%08x): invalid pointer", dstAddrAddr);
		// Should crash?
		return 0;
	}

	DEBUG_LOG(HLE, "sceCccDecodeUTF8(%08x)", dstAddrAddr);
	UTF8 utf(*dstp);
	u32 result = utf.next();
	*dstp += utf.byteIndex();

	if (result == UTF8::INVALID)
		return errorUTF8;
	return result;
}
コード例 #28
0
ファイル: sceCcc.cpp プロジェクト: BogsyP/ppsspp
u32 sceCccDecodeUTF16(u32 dstAddrAddr)
{
	auto dstp = PSPPointer<PSPWCharPointer>::Create(dstAddrAddr);

	if (!dstp.IsValid() || !dstp->IsValid()) {
		ERROR_LOG(HLE, "sceCccDecodeUTF16(%08x): invalid pointer", dstAddrAddr);
		// Should crash?
		return 0;
	}

	DEBUG_LOG(HLE, "sceCccDecodeUTF16(%08x)", dstAddrAddr);
	// TODO: Does it do any detection of BOM?
	UTF16LE utf(*dstp);
	u32 result = utf.next();
	*dstp += utf.byteIndex();

	if (result == UTF16LE::INVALID)
		return errorUTF16;
	return result;
}
コード例 #29
0
ファイル: Input.cpp プロジェクト: BlitzMaxModules/osg.mod
unsigned int Input::calculateBestYOffset(const std::string& s)
{

    const osgText::FontResolution fr(static_cast<unsigned int>(_text->getCharacterHeight()),
                                     static_cast<unsigned int>(_text->getCharacterHeight()));

    osgText::String utf(s);

    unsigned int descent = 0;

    for(osgText::String::iterator i = utf.begin(); i != utf.end(); i++) {
        osgText::Font*        font  = const_cast<osgText::Font*>(_text->getFont());
        osgText::Font::Glyph* glyph = font->getGlyph(fr, *i);
        unsigned int          d     = abs((int)glyph->getHorizontalBearing().y());

        if(d > descent) descent = d;
    }

    return descent;
}
コード例 #30
0
ファイル: TestIDN.cpp プロジェクト: Andrel322/gecko-dev
int main(int argc, char **argv) {
    if (test_common_init(&argc, &argv) != 0)
        return -1;

    // Test case from RFC 3492 (7.1 - Simplified Chinese)
    const char plain[] =
         "\xE4\xBB\x96\xE4\xBB\xAC\xE4\xB8\xBA\xE4\xBB\x80\xE4\xB9\x88\xE4\xB8\x8D\xE8\xAF\xB4\xE4\xB8\xAD\xE6\x96\x87";
    const char encoded[] = "xn--ihqwcrb4cv8a8dqg056pqjye";

    nsCOMPtr<nsIIDNService> converter = do_GetService(NS_IDNSERVICE_CONTRACTID);
    NS_ASSERTION(converter, "idnSDK not installed!");
    if (converter) {
        nsAutoCString buf;
        nsresult rv = converter->ConvertUTF8toACE(NS_LITERAL_CSTRING(plain), buf);
        NS_ASSERTION(NS_SUCCEEDED(rv), "error ConvertUTF8toACE");
        NS_ASSERTION(buf.Equals(NS_LITERAL_CSTRING(encoded)), 
                     "encode result incorrect");
        printf("encoded = %s\n", buf.get());

        buf.Truncate();
        rv = converter->ConvertACEtoUTF8(NS_LITERAL_CSTRING(encoded), buf);
        NS_ASSERTION(NS_SUCCEEDED(rv), "error ConvertACEtoUTF8");
        NS_ASSERTION(buf.Equals(NS_LITERAL_CSTRING(plain)), 
                     "decode result incorrect");
        printf("decoded = ");
        NS_ConvertUTF8toUTF16 utf(buf);
        const char16_t *u = utf.get();
        for (int i = 0; u[i]; i++) {
          printf("U+%.4X ", u[i]);
        }
        printf("\n");

        bool isAce;
        rv = converter->IsACE(NS_LITERAL_CSTRING("www.xn--ihqwcrb4cv8a8dqg056pqjye.com"), &isAce);
        NS_ASSERTION(NS_SUCCEEDED(rv), "error IsACE");
        NS_ASSERTION(isAce, "IsACE incorrect result");
    }
    return 0;
}