aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/KvsObject_memoryBuffer.cpp
diff options
context:
space:
mode:
authorGravatar Noldor2011-06-28 22:17:26 +0000
committerGravatar Noldor2011-06-28 22:17:26 +0000
commit2ec129431e2dee46fdcdc4d67a85f79d84f0723e (patch)
treebd5f463c4c19f2822290b68e9d63a014f39faef1 /src/modules/objects/KvsObject_memoryBuffer.cpp
parentupdated sources date and changelogs (diff)
downloadKVIrc-2ec129431e2dee46fdcdc4d67a85f79d84f0723e.tar.gz
KVIrc-2ec129431e2dee46fdcdc4d67a85f79d84f0723e.tar.bz2
KVIrc-2ec129431e2dee46fdcdc4d67a85f79d84f0723e.zip
Some fixes in class sql
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5884 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/objects/KvsObject_memoryBuffer.cpp')
-rw-r--r--src/modules/objects/KvsObject_memoryBuffer.cpp26
1 files changed, 26 insertions, 0 deletions
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)