NCBI C++ ToolKit
Classes | Typedefs | Enumerations
message_handler.hpp File Reference
#include <connect/services/netservice_protocol_parser.hpp>
#include "nc_utils.hpp"
+ Include dependency graph for message_handler.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Go to the SVN repository for this file.

Classes

class  CNCMessageHandler
 Handler of all NetCache incoming requests. More...
 
struct  CNCMessageHandler::SCommandExtra
 Extra information about each NetCache command. More...
 
class  CNCMsgHandler_Factory
 

Typedefs

typedef Uint4 TNCCmdFlags
 
typedef Uint4 TNCUserFlags
 

Enumerations

enum  ENCCmdFlags {
  fNoCmdFlags = 0 , fNeedsBlobAccess = 1 << 0 , fCanGenerateKey = 1 << 1 , fNeedsStorageCache = 1 << 2 ,
  fDoNotCheckPassword = 1 << 3 , fDoNotProxyToPeers = 1 << 4 , fUsesPeerSearch = 1 << 5 , fPeerFindExistsOnly = 1 << 6 ,
  fNeedsSpaceAsClient = 1 << 7 , fNeedsSpaceAsPeer = 1 << 8 , fSwapLengthBytes = 1 << 9 , fNoReplyOnFinish = 1 << 10 ,
  fReadExactBlobSize = 1 << 11 , fSkipBlobEOF = 1 << 12 , fCopyLogEvent = 1 << 13 , fNeedsAdminClient = 1 << 14 ,
  fRunsInStartedSync = 1 << 15 , fProhibitsSyncAbort = 1 << 16 , fNeedsLowerPriority = 1 << 17 , fNoBlobVersionCheck = 1 << 18 ,
  fNoBlobAccessStats = 1 << 19 , fSyncCmdSuccessful = 1 << 20 , fCursedPUT2Cmd = 1 << 21 , fComesFromClient = 1 << 22 ,
  fIsHttp = 1 << 23 , fNeedsBlobList = 1 << 24 , eProxyBlobRead = fNeedsBlobAccess | fUsesPeerSearch , eClientBlobRead = eProxyBlobRead | fComesFromClient ,
  eProxyBlobWrite = fNeedsBlobAccess | fNeedsSpaceAsClient , eClientBlobWrite = eProxyBlobWrite | fComesFromClient , eCopyBlobFromPeer , eRunsInStartedSync ,
  eSyncBlobCmd , eBlobPut = fNeedsSpaceAsClient | fNeedsSpaceAsPeer
}
 
enum  ENCUserFlags { fNoUserFlags = 0 , fNoProlong = 1 << 0 , fNoCreate = 1 << 1 }
 
enum  ENCProxyCmd {
  eProxyNone = 0 , eProxyRead = 1 , eProxyWrite , eProxyHasBlob ,
  eProxyGetSize , eProxyReadLast , eProxySetValid , eProxyRemove ,
  eProxyGetMeta , eProxyProlong , eProxyGetBList , eProxyGetBList2
}
 

Typedef Documentation

◆ TNCCmdFlags

typedef Uint4 TNCCmdFlags

Definition at line 126 of file message_handler.hpp.

◆ TNCUserFlags

Definition at line 135 of file message_handler.hpp.

Enumeration Type Documentation

◆ ENCCmdFlags

Enumerator
fNoCmdFlags 
fNeedsBlobAccess 

Command needs access to the blob.

fCanGenerateKey 

Command needs to generate blob key if it's empty.

fNeedsStorageCache 

Command needs finished database caching to be executed locally.

fDoNotCheckPassword 

Do not check access password during command execution.

fDoNotProxyToPeers 

Always execute the command locally without proxying to peers.

fUsesPeerSearch 

Command needs to search for the latest version of the blob on all servers.

fPeerFindExistsOnly 

During the blob search on other servers command needs to know only whether this blob exists or not, i.e.

first positive response of existence should finish the search.

fNeedsSpaceAsClient 

Command comes from client and needs disk space to execute.

fNeedsSpaceAsPeer 

Command comes from other NC server and needs disk space to execute.

fSwapLengthBytes 

Byte order should be swapped when reading length of chunks in blob transfer protocol.

fNoReplyOnFinish 

Command does not need a confirmation at the end of execution.

Usually, all commands need a reply, but storing blob (STOR) may go without (in 'performance' mode)

fReadExactBlobSize 

There is exact size of the blob transferred to NetCache.

fSkipBlobEOF 

Client will send blob data for the command and won't send EOF marker.

fCopyLogEvent 

Command copies sync log event from other server, not creates a new one.

fNeedsAdminClient 

Command can be executed only by admin client.

fRunsInStartedSync 

Command can be executed only after successful execution of SYNC_START.

fProhibitsSyncAbort 

Command should be executed even if server wants to abort the synchronization.

fNeedsLowerPriority 

Command should be executed with a lower priority.

fNoBlobVersionCheck 

Command shouldn't check the blob version (it doesn't come with the command).

fNoBlobAccessStats 

Access information about blob shouldn't be printed at the end of the command.

fSyncCmdSuccessful 

Consider synchronization command to be successful even though RequestStatus is not eStatus_OK.

fCursedPUT2Cmd 

This is PUT2 command and connection that used PUT2 command.

fComesFromClient 

Command comes from client, not from other NC server.

fIsHttp 

HTTP-related.

fNeedsBlobList 

Command needs access to the blob list.

eProxyBlobRead 
eClientBlobRead 
eProxyBlobWrite 
eClientBlobWrite 
eCopyBlobFromPeer 
eRunsInStartedSync 
eSyncBlobCmd 
eBlobPut 

Definition at line 51 of file message_handler.hpp.

◆ ENCProxyCmd

Enumerator
eProxyNone 
eProxyRead 
eProxyWrite 
eProxyHasBlob 
eProxyGetSize 
eProxyReadLast 
eProxySetValid 
eProxyRemove 
eProxyGetMeta 
eProxyProlong 
eProxyGetBList 
eProxyGetBList2 

Definition at line 137 of file message_handler.hpp.

◆ ENCUserFlags

Enumerator
fNoUserFlags 
fNoProlong 

Command does not update blob expiration time.

fNoCreate 

Command does not create blob if it does not exist.

Definition at line 128 of file message_handler.hpp.

Modified on Sun Apr 14 05:26:51 2024 by modify_doxy.py rev. 669887