From 2ec129431e2dee46fdcdc4d67a85f79d84f0723e Mon Sep 17 00:00:00 2001 From: Noldor Date: Tue, 28 Jun 2011 22:17:26 +0000 Subject: Some fixes in class sql git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5884 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/KvsObject_memoryBuffer.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/modules/objects/KvsObject_memoryBuffer.cpp') diff --git a/src/modules/objects/KvsObject_memoryBuffer.cpp b/src/modules/objects/KvsObject_memoryBuffer.cpp index 9f7e594a7..5bde1fd13 100644 --- a/src/modules/objects/KvsObject_memoryBuffer.cpp +++ b/src/modules/objects/KvsObject_memoryBuffer.cpp @@ -63,11 +63,14 @@ KVSO_BEGIN_REGISTERCLASS(KvsObject_memoryBuffer,"memorybuffer","object") KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_memoryBuffer,loadFromFile); KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_memoryBuffer,clear); KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_memoryBuffer,saveToFile); + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_memoryBuffer,size); + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_memoryBuffer,readByteAt); KVSO_END_REGISTERCLASS(KvsObject_memoryBuffer) KVSO_BEGIN_CONSTRUCTOR(KvsObject_memoryBuffer,KviKvsObject) + mIdx=0; m_pBuffer = new QByteArray(); KVSO_END_CONSTRUCTOR(KvsObject_memoryBuffer) @@ -109,6 +112,29 @@ KVSO_CLASS_FUNCTION(memoryBuffer,loadFromFile) else c->warning(__tr2qs_ctx("The file '%Q' does not exist","objects"),&szFileName); return true; } +KVSO_CLASS_FUNCTION(memoryBuffer,size) +{ + CHECK_INTERNAL_POINTER(m_pBuffer) + c->returnValue()->setInteger((kvs_int_t)m_pBuffer->size()); + return true; +} + +KVSO_CLASS_FUNCTION(memoryBuffer,readByteAt) +{ + CHECK_INTERNAL_POINTER(m_pBuffer) + kvs_int_t iIdx; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("index",KVS_PT_INT,0,iIdx) + KVSO_PARAMETERS_END(c) + if(iIdx>m_pBuffer->size()) + { + c->warning(__tr2qs_ctx("Index '%I' out of the buffer size","objects"),&iIdx); + return true; + } + unsigned char ch = m_pBuffer->at(iIdx); + c->returnValue()->setInteger( ch); + return true; +} KVSO_CLASS_FUNCTION(memoryBuffer,saveToFile) { CHECK_INTERNAL_POINTER(m_pBuffer) -- cgit v1.3.1-10-gc9f91