52 class ArnSync :
public QObject
92 AbortKillRequest = 1002,
100 typedef QString (*ConVertPathCB)(
void* context,
const QString& path);
102 ArnSync( QTcpSocket* socket,
bool clientSide, QObject *parent);
105 void setArnLogin( ArnSyncLogin* arnLogin);
107 bool isDemandLogin()
const;
108 void setDemandLogin(
bool isDemandLogin);
109 void addFreePath(
const QString& path);
110 QStringList freePaths()
const;
112 ArnItemNet* newNetItem(
const QString& path,
114 bool* isNewPtr = arnNullptr);
115 void connectStarted();
119 void send(
const QByteArray& xString);
120 void sendNoSync(
const QString& path);
121 void sendSetTree(
const QString& path);
122 void sendDelete(
const QString& path);
123 void sendInfo(
int type,
const QByteArray& data = QByteArray());
124 void sendMessage(
int type,
const QByteArray& data = QByteArray());
126 uint remoteVer( uint index);
127 void loginToArn(
const QString& userName,
const QString& passwordHash,
131 static void setupMonitorItem( ArnItemNet* itemNet);
132 static void doChildsToEvent( ArnItemNet* itemNet);
135 void setSessionHandler(
void* sessionHandler);
136 void setToRemotePathCB( ConVertPathCB toRemotePathCB);
137 static QString nullConvertPath(
void* context,
const QString& path);
138 void setWhoIAm(
const QByteArray& whoIAm);
139 QByteArray remoteWhoIAm()
const;
140 QString loginUserName()
const;
142 void getTraffic( quint64& in, quint64& out)
const;
146 void xcomDelete(
const QString& path);
147 void stateChanged(
int state);
148 void infoReceived(
int type);
149 void messageReceived(
int type,
const QByteArray& data);
151 void loginRequired(
int contextCode);
152 void loginCompleted();
155 virtual void customEvent( QEvent* ev);
160 void doLoginSeq0End();
162 void doArnMonEvent(
int type,
const QByteArray& data,
bool isLocal, ArnItemNet* itemNet);
170 void doInfoInternal(
int infoType,
const QByteArray& data = QByteArray());
172 void startNormalSync();
173 void setupItemNet( ArnItemNet* itemNet, uint netId);
174 void itemValueUpdater(
const ArnLinkHandle& handleData,
const QByteArray* valueData,
175 ArnItemNet* itemNet);
176 void itemModeUpdater( ArnItemNet* itemNet);
177 FluxRec* getFreeFluxRec();
178 QByteArray makeFluxString(
const ArnItemNet* itemNet,
const ArnLinkHandle& handleData,
179 const QByteArray* valueData);
180 void addToFluxQue(
const ArnLinkHandle& handleData,
const QByteArray* valueData,
181 ArnItemNet* itemNet);
182 void addToModeQue( ArnItemNet* itemNet);
183 void sendFluxItem(
const ArnItemNet* itemNet);
184 void sendSyncItem( ArnItemNet* itemNet);
185 void sendModeItem( ArnItemNet* itemNet);
187 void eventToFluxQue( uint netId,
int type,
const QByteArray& data);
188 void atomicOpToFluxQue(
int op,
const QVariant& arg1,
const QVariant& arg2,
const ArnItemNet* itemNet);
189 void destroyToFluxQue( ArnItemNet* itemNet);
190 void removeItemNetRefs( ArnItemNet* itemNet);
192 void clearNonPipeQueues();
193 void clearAllQueues();
194 void setRemoteVer(
const QByteArray& remVer);
195 void setState( State state);
196 bool isFreePath(
const QString& path)
const;
199 uint doCommandSync();
200 uint doCommandMode();
201 uint doCommandNoSync();
202 uint doCommandFlux();
203 uint doCommandAtomOp();
204 uint doCommandEvent();
208 uint doCommandDelete();
209 uint doCommandMessage();
210 uint doCommandInfo();
211 uint doCommandRInfo();
213 uint doCommandRVer();
214 uint doCommandLogin();
217 ArnSyncLogin* _arnLogin;
218 void* _sessionHandler;
219 ConVertPathCB _toRemotePathCB;
221 QByteArray _dataReadBuf;
222 QByteArray _dataRemain;
227 QStringList _freePathTab;
229 QByteArray _remoteWhoIAm;
231 QMap<uint,ArnItemNet*> _itemNetMap;
233 QList<FluxRec*> _fluxRecPool;
234 QQueue<FluxRec*> _fluxPipeQueue;
235 QQueue<ArnItemNet*> _fluxItemQueue;
237 QQueue<ArnItemNet*> _syncQueue;
238 QQueue<ArnItemNet*> _modeQueue;
241 InfoType _curInfoType;
244 bool _isConnectStarted;
257 QString _loginUserName;
258 QString _loginPwHash;
259 QTimer _loginDelayTimer;
266 #endif // ARNSYNC_HPP
Container class with string representation for serialized data.
The Client session Sync mode at connect & reconnect.
#define MQ_DECLARE_ENUM(EStruct)
Enums.