Eneboo - Documentación para desarrolladores
|
00001 /*************************************************************************** 00002 AQSByteArray_p.h 00003 ------------------- 00004 begin : 24/02/2011 00005 copyright : (C) 2003-2011 by InfoSiAL S.L. 00006 email : mail@infosial.com 00007 ***************************************************************************/ 00008 /*************************************************************************** 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; version 2 of the License. * 00012 ***************************************************************************/ 00013 /*************************************************************************** 00014 Este programa es software libre. Puede redistribuirlo y/o modificarlo 00015 bajo los términos de la Licencia Pública General de GNU en su 00016 versión 2, publicada por la Free Software Foundation. 00017 ***************************************************************************/ 00018 00019 #ifndef AQSBYTEARRAY_P_H_ 00020 #define AQSBYTEARRAY_P_H_ 00021 00022 #include "AQSAbstractMemArray_p.h" 00023 #include <qcstring.h> 00024 00025 // @AQ_PTR_INDIRECTION@ 00026 00027 class AQSByteArray : public AQSAbstractMemArray 00028 { 00029 Q_OBJECT 00030 00031 Q_PROPERTY(QString string READ string WRITE setString); 00032 Q_PROPERTY(QByteArray toVariant READ toVariant); 00033 00034 AQ_DECLARE_AQS_VOID(ByteArray, AbstractMemArray); 00035 00036 public: 00037 QByteArray toVariant() const { 00038 if (!o_) 00039 return QByteArray(); 00040 return *o_; 00041 } 00042 00043 virtual void setter(uint index, const QVariant &v) { 00044 if (!o_) 00045 return; 00046 (*o_)[index] = (char)v.toInt(); 00047 } 00048 virtual QVariant getter(uint index) const { 00049 if (!o_) 00050 return 0; 00051 return (*o_)[index]; 00052 } 00053 00054 protected: 00055 void specializedInternalFinish() { 00056 if (!wrap_) 00057 delete o_; 00058 } 00059 00060 public slots: 00061 QByteArray toHex() const { 00062 if (!o_) 00063 return QByteArray(); 00064 return byteArrayToHex(o_); 00065 } 00066 00067 QByteArray fromHex() const { 00068 if (!o_) 00069 return QByteArray(); 00070 return byteArrayFromHex(o_); 00071 } 00072 00073 QByteArray toBase64() const { 00074 if (!o_) 00075 return QByteArray(); 00076 return byteArrayToBase64(o_); 00077 } 00078 00079 QByteArray fromBase64() const { 00080 if (!o_) 00081 return QByteArray(); 00082 return byteArrayFromBase64(o_); 00083 } 00084 00085 QByteArray compress() const { 00086 if (!o_) 00087 return QByteArray(); 00088 return qCompress(*o_); 00089 } 00090 00091 QByteArray uncompress() const { 00092 if (!o_) 00093 return QByteArray(); 00094 return qUncompress(*o_); 00095 } 00096 00097 QByteArray encryptInternal() const { 00098 if (!o_) 00099 return QByteArray(); 00100 return globalAQS->encryptInternal(o_); 00101 } 00102 00103 QByteArray decryptInternal() const { 00104 if (!o_) 00105 return QByteArray(); 00106 return globalAQS->decryptInternal(o_); 00107 } 00108 00109 QString sha1() const { 00110 if (!o_) 00111 return QByteArray(); 00112 return globalAQS->sha1(o_); 00113 } 00114 00115 int rand() { 00116 if (!o_) 00117 return 0; 00118 return rand_bytes(o_); 00119 } 00120 00121 int rand_pseudo() { 00122 if (!o_) 00123 return 0; 00124 return rand_pseudo_bytes(o_); 00125 } 00126 00127 QByteArray aes256Encrypt(const QByteArray &key, 00128 const QByteArray &iv) { 00129 if (!o_) 00130 return QByteArray(); 00131 return aes_256_encrypt(o_, key, iv); 00132 } 00133 00134 QByteArray aes256Decrypt(const QByteArray &key, 00135 const QByteArray &iv) { 00136 if (!o_) 00137 return QByteArray(); 00138 return aes_256_decrypt(o_, key, iv); 00139 } 00140 00141 void setString(const QString &str) { 00142 if (!o_) 00143 return; 00144 QTextStream ts(*o_, IO_WriteOnly); 00145 ts << str; 00146 } 00147 00148 QString string() const { 00149 if (!o_) 00150 return QString::null; 00151 return QString(*o_); 00152 } 00153 00154 //@AQ_BEGIN_DEF_PUB_SLOTS@ 00155 public slots: 00156 QVariant at(uint) const; 00157 uint nrefs() const; 00158 uint size() const; 00159 uint count() const; 00160 bool isEmpty() const; 00161 bool isNull() const; 00162 bool resize(uint); 00163 bool truncate(uint); 00164 bool fill(char, int = -1); 00165 QByteArray assign(QByteArray *); 00166 QByteArray assign(AQSByteArray *); 00167 QByteArray duplicate(QByteArray *); 00168 QByteArray duplicate(AQSByteArray *); 00169 int find(char, uint = 0) const; 00170 int contains(char) const; 00171 void sort(); 00172 int bsearch(char) const; 00173 virtual void detach(); 00174 QByteArray copy() const; 00175 00176 protected: 00177 static void *construct(const QSArgumentList &args) { 00178 QMap<int, QStringList> candidates; 00179 candidates[0].append(QString::null); 00180 candidates[1].append(QString::fromLatin1("int")); 00181 candidates[1].append(QString::fromLatin1("QByteArray*")); 00182 QString sgt(castArgsSignature(args, candidates)); 00183 if (sgt.isEmpty()) 00184 return new QByteArray; 00185 if (sgt == QString::fromLatin1("int")) 00186 return new QByteArray(args[0].variant().toInt()); 00187 if (sgt == QString::fromLatin1("QByteArray*")) 00188 return new QByteArray(*argValue<QByteArray *>(args[0])); 00189 return 0; 00190 } 00191 00192 public: 00193 static QMap<int, QStringList> candidateConstructors() { 00194 QMap<int, QStringList> candidates; 00195 candidates[0].append(QString::null); 00196 candidates[1].append(QString::fromLatin1("int")); 00197 candidates[1].append(QString::fromLatin1("QByteArray*")); 00198 return candidates; 00199 } 00200 //@AQ_END_DEF_PUB_SLOTS@ 00201 }; 00202 00203 //@AQ_BEGIN_IMP_PUB_SLOTS@ 00204 inline QVariant AQSByteArray::at(uint arg0) const 00205 { 00206 AQ_CALL_RET_V(at(arg0), QVariant); 00207 } 00208 inline uint AQSByteArray::nrefs() const 00209 { 00210 AQ_CALL_RET_V(nrefs(), uint); 00211 } 00212 inline uint AQSByteArray::size() const 00213 { 00214 AQ_CALL_RET_V(size(), uint); 00215 } 00216 inline uint AQSByteArray::count() const 00217 { 00218 AQ_CALL_RET_V(count(), uint); 00219 } 00220 inline bool AQSByteArray::isEmpty() const 00221 { 00222 AQ_CALL_RET_V(isEmpty(), bool); 00223 } 00224 inline bool AQSByteArray::isNull() const 00225 { 00226 AQ_CALL_RET_V(isNull(), bool); 00227 } 00228 inline bool AQSByteArray::resize(uint arg0) 00229 { 00230 AQ_CALL_RET_V(resize(arg0), bool); 00231 } 00232 inline bool AQSByteArray::truncate(uint arg0) 00233 { 00234 AQ_CALL_RET_V(truncate(arg0), bool); 00235 } 00236 inline bool AQSByteArray::fill(char arg0, int arg1) 00237 { 00238 AQ_CALL_RET_V(fill(arg0, arg1), bool); 00239 } 00240 inline QByteArray AQSByteArray::assign(QByteArray *arg0) 00241 { 00242 AQ_CALL_RET_V(assign(*arg0), QByteArray); 00243 } 00244 inline QByteArray AQSByteArray::assign(AQSByteArray *arg0) 00245 { 00246 AQ_CALL_RET_V(assign(*arg0), QByteArray); 00247 } 00248 inline QByteArray AQSByteArray::duplicate(QByteArray *arg0) 00249 { 00250 AQ_CALL_RET_V(duplicate(*arg0), QByteArray); 00251 } 00252 inline QByteArray AQSByteArray::duplicate(AQSByteArray *arg0) 00253 { 00254 AQ_CALL_RET_V(duplicate(*arg0), QByteArray); 00255 } 00256 inline int AQSByteArray::find(char arg0, uint arg1) const 00257 { 00258 AQ_CALL_RET_V(find(arg0, arg1), int); 00259 } 00260 inline int AQSByteArray::contains(char arg0) const 00261 { 00262 AQ_CALL_RET_V(contains(arg0), int); 00263 } 00264 inline void AQSByteArray::sort() 00265 { 00266 AQ_CALL_VOID(sort()); 00267 } 00268 inline int AQSByteArray::bsearch(char arg0) const 00269 { 00270 AQ_CALL_RET_V(bsearch(arg0), int); 00271 } 00272 inline void AQSByteArray::detach() 00273 { 00274 AQ_CALL_VOID(detach()); 00275 } 00276 inline QByteArray AQSByteArray::copy() const 00277 { 00278 AQ_CALL_RET_V(copy(), QByteArray); 00279 } 00280 //@AQ_END_IMP_PUB_SLOTS@ 00281 00282 #endif /* AQSBYTEARRAY_P_H_ */ 00283 // @AQSVOIDPTR@