A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/netservice__api_8cpp_source.html below:

NCBI C++ ToolKit: src/connect/services/netservice_api.cpp Source File

33 #include "../ncbi_comm.h" 34 #include "../ncbi_lbsmd.h" 35 #include "../ncbi_servicep.h" 58 #define NCBI_USE_ERRCODE_X ConnServ_Connection 60 #define LBSMD_PENALIZED_RATE_BOUNDARY -0.01 103  m_Service

->m_Listener->SetErrorHandler(error_handler);

133  return m_Impl

->GetServer();

163  return m_Impl

->GetRate();

197

server_group_impl->m_Servers.begin() +

s_GetRand

(

198  CRandom

::TValue((server_group_impl->m_SuppressedBegin -

199

server_group_impl->m_Servers.begin()) - 1)))

208  if

(number_of_servers <= 1)

219

}

while

(number_of_servers > 0);

269

m_KeyCRC32(key_crc32)

271

TNetServerList::const_iterator server_list_iter(

m_Position

);

283  if

(highest_rank < server_rank)

284

highest_rank = server_rank;

299

TNetServerList::const_iterator server_list_iter(

333

m_PropCreator(listener->GetPropCreator()),

334

m_EnforcedServer(0, 0),

335

m_MaxTotalTime(

CTimeout

::eInfinite),

336

m_UseOldStyleAuth(

false

)

342

m_Listener(listener),

344

m_ServiceName(service_name),

345

m_RebalanceStrategy(

registry

, sections),

348

m_ClientName(client_name)

353

m_Listener(prototype->m_Listener->Clone()),

354

m_ServerPool(prototype->m_ServerPool),

355

m_ServiceName(server->m_Address.AsString()),

356

m_RebalanceStrategy(prototype->m_RebalanceStrategy),

357

m_RoundRobin(prototype->m_RoundRobin.load()),

358

m_APIName(prototype->m_APIName),

359

m_ClientName(prototype->m_ClientName),

360

m_UseSmartRetries(prototype->m_UseSmartRetries),

361

m_ConnectionMaxRetries(prototype->m_ConnectionMaxRetries),

362

m_ConnectionRetryDelay(prototype->m_ConnectionRetryDelay),

363

m_NetInfo(prototype->m_NetInfo)

369

m_Listener(prototype->m_Listener->Clone()),

370

m_ServerPool(prototype->m_ServerPool),

371

m_ServiceName(service_name),

372

m_RebalanceStrategy(prototype->m_RebalanceStrategy),

373

m_RoundRobin(prototype->m_RoundRobin.load()),

374

m_APIName(prototype->m_APIName),

375

m_ClientName(prototype->m_ClientName),

376

m_UseSmartRetries(prototype->m_UseSmartRetries),

377

m_ConnectionMaxRetries(prototype->m_ConnectionMaxRetries),

378

m_ConnectionRetryDelay(prototype->m_ConnectionRetryDelay),

379

m_NetInfo(prototype->m_NetInfo)

406  const string

& api_name,

const string

& service_name,

const string

& client_name,

411

rv->Init(

registry

, sections, ns_client_name);

425 #ifdef NCBI_GRID_XSITE_CONN_SUPPORT 428

SNetServiceXSiteAPI::AllowXSiteConnections();

433  return

SNetServiceXSiteAPI::IsUsingXSiteProxy();

436 static const char

kXSiteFwd[] =

"XSITEFWD"

;

438 void

SNetServiceXSiteAPI::AllowXSiteConnections()

441  const auto

local_domain = GetDomain(local_ip);

447

m_LocalDomain.store(local_domain);

448

m_AllowXSiteConnections.store(

true

);

451 bool

SNetServiceXSiteAPI::IsUsingXSiteProxy()

453  return

m_AllowXSiteConnections.load();

458  if

(

registry

.

Get

({

"netservice_api"

, sections },

"allow_xsite_conn"

,

false

)) {

459

AllowXSiteConnections();

471  if

(IsForeignAddr(actual.host)) {

476

memset(&rr, 0,

sizeof

(rr));

478

rr.host = actual.host;

483  auto

text_len = service.size() ?

min

(service.size() + 1, text_max) : 0;

484

memcpy(rr.text, service.c_str(), text_len);

489

svc.rdbuf()->PUBSETBUF(0, 0);

490  if

(svc.write((

const char

*) &rr.ticket

,

sizeof

(rr.ticket)) &&

492

svc.read(

buf

,

sizeof

(

buf

)-1);

493  len

= (size_t) svc.gcount();

503

err =

"Connection refused"

;

505

err =

"Short response received"

;

508

?

"Client rejected"

:

"Unknown error"

;

509  else if

(memcmp(

buf

,

"NCBI"

, 4) != 0)

510

err = rr.text[0] ? rr.text :

"Unspecified error"

;

514  "Error while acquiring auth ticket from" 515  " cross-site connection proxy " 516

<< kXSiteFwd <<

": "

<< err);

521

actual.host = rr.host;

531

text_len = strlen(rr.text) + 1

;

532  if

(text_len > text_max)

542  "Error while tunneling through proxy " 543

<< kXSiteFwd <<

": "

<< err);

556  "Error while sending proxy auth ticket"

);

560 int

SNetServiceXSiteAPI::GetDomain(

unsigned int ip

)

571 bool

SNetServiceXSiteAPI::IsForeignAddr(

unsigned int ip

)

573  if

(!IsUsingXSiteProxy())

return false

;

575  const auto

d = GetDomain(

ip

);

576  return

d && (d != m_LocalDomain);

579

atomic<int> SNetServiceXSiteAPI::m_LocalDomain{0};

580

atomic<bool> SNetServiceXSiteAPI::m_AllowXSiteConnections{

false

};

626  string

host =

registry

.

Get

(sections, {

"server"

,

"host"

},

""

);

627  string

port =

registry

.

Get

(sections,

"port"

,

""

);

629  if

(!host.empty() && !port.empty())

m_ServiceName

= host +

":"

+ port;

649  m_APIName

<<

": client name is not set"

);

661  const auto

kConnTimeoutDefault = 2.0;

662  const auto

kCommTimeoutDefault = 12.0;

663  const auto

kFirstServerTimeoutDefault = 0.0;

672  double

conn_timeout =

registry

.

Get

(sections,

"connection_timeout"

, kConnTimeoutDefault);

675  double

comm_timeout =

registry

.

Get

({ sections,

"netservice_api"

},

"communication_timeout"

, kCommTimeoutDefault);

678  double

first_srv_timeout =

registry

.

Get

(sections,

"first_server_timeout"

, kFirstServerTimeoutDefault);

681  double

max_total_time =

registry

.

Get

(sections,

"max_connection_time"

, 0.0);

688  unsigned

discovery_iteration)

696

server_group->

Reset

(discovery_iteration);

707

auth +=

"client=\""

;

720

auth +=

" client_path=\""

;

731  return m_Impl

->m_ServiceName;

736  return m_Impl

->m_ServerPool;

741  return m_Impl

->IsLoadBalanced();

746  m_Impl

->m_EnforcedServer = std::move(address);

758

output_stream <<

'['

<< (*it).GetServerAddress() <<

']'

<< endl;

760  switch

(output_style) {

762

output_stream << (*it).ExecWithRetry(

cmd

,

false

).response << endl;

767  CUrlArgs

url_parser((*it).ExecWithRetry(

cmd

,

false

).response);

770

output_stream << field->name <<

771  ": "

<< field->value << endl;

779

(*it).ExecWithRetry(

cmd

,

true

));

782  output

->SetNetCacheCompatMode();

786  while

(

output

.ReadLine(line))

787

output_stream << line << endl;

792

output_stream << endl;

804  return

loc.first->second;

808

loc.first->second = server;

827

server->m_ServerPool =

this

;

876  bool

multiline_output)

881  m_APIName

<<

": service name is not set"

);

890

exec_result, &random_traversal,

908  bool

multiline_output)

910  return m_Impl

->FindServerAndExec(

cmd

, multiline_output);

916

(*it).ExecWithRetry(

cmd

,

false

);

923  m_APIName

<<

": service name is not set"

);

958

TNetServerList::size_type number_of_regular_servers = 0;

959

TNetServerList::size_type number_of_standby_servers = 0;

964  for

(

const auto

& d : discovered) {

971

servers.insert(servers.begin() +

972

number_of_regular_servers++, server_rate);

973  else if

(d.second < max_standby_rate ||

975

servers.push_back(server_rate);

977

servers.insert(servers.begin() +

978

number_of_regular_servers, server_rate);

979  if

(d.second == max_standby_rate)

980

++number_of_standby_servers;

982

max_standby_rate = d.second;

983

number_of_standby_servers = 1;

989

(number_of_regular_servers > 0 ?

990

number_of_regular_servers : number_of_standby_servers);

1027  for

(

auto

& w : *

this

) {

1039  bool

multiline_output,

1048  enum

EIterationMode {

1051

} iteration_mode = eInitialIteration;

1054

vector<CNetServer> servers_to_retry;

1055  unsigned

current_server = 0;

1059  unsigned

number_of_servers = 0;

1060  unsigned

ns_with_submits_disabled = 0;

1061  unsigned

servers_throttled = 0;

1062  bool

blob_not_found =

false

;

1065  const bool

use_fst = (fst.sec || fst.usec) && (retry_count > 0 ||

m_UseSmartRetries

);

1066  const STimeout

* timeout = use_fst ? &fst :

nullptr

;

1071

skip_server =

false

;

1076

fail_only_warnings.clear();

1088

blob_not_found =

true

;

1089

skip_server =

true

;

1101

++ns_with_submits_disabled;

1102

skip_server =

true

;

1103

fail_only_warnings.emplace_back(ex.

GetMsg

(), server);

1119

++servers_throttled;

1120

fail_only_warnings.emplace_back(ex.

GetMsg

(), server);

1128

++number_of_servers;

1130  if

(iteration_mode == eInitialIteration) {

1132

servers_to_retry.push_back(server);

1138

servers_to_retry.erase(servers_to_retry.begin() +

1141  if

(current_server < servers_to_retry.size())

1142

server = servers_to_retry[current_server];

1147  if

(!blob_not_found && !deadline.

IsInfinite

() &&

1154  if

(number_of_servers == ns_with_submits_disabled) {

1156  "Cannot execute ["

<<

cmd

<<

1157  "]: all NetSchedule servers are " 1158  "in REFUSESUBMITS mode for the "

+

m_ServiceName

+

" service."

);

1161  if

(number_of_servers == servers_throttled) {

1163  "Cannot execute ["

<<

cmd

<<

1164  "]: all servers are throttled for the "

+

m_ServiceName

+

" service."

);

1167  if

(retry_count <= 0 || servers_to_retry.empty()) {

1168  if

(blob_not_found) {

1170  "Cannot execute ["

<<

cmd

<<

"]: blob not found."

);

1173  "Unable to execute ["

<<

cmd

<<

1174  "] on any of the discovered servers for the "

+

m_ServiceName

+

" service."

);

1179  "of the discovered servers; will retry after delay."

);

1183

number_of_servers = 0;

1184

ns_with_submits_disabled = 0;

1185

servers_throttled = 0;

1187

iteration_mode = eRetry;

1188

server = servers_to_retry[current_server = 0];

1203  default

:

return nullptr

;

1212

it->second->m_CurrentConnectionGeneration.Add(1);

1232  while

(server_group !=

NULL

) {

1234  delete

server_group;

1235

server_group = next_group;

1241  m_Impl

->m_CommTimeout = to;

1245  return m_Impl

->m_CommTimeout;

1251  m_Impl

->GetDiscoveredServers(servers);

1268  "Couldn't find any available servers for the "

+

1269  m_Impl

->m_ServiceName +

" service."

);

1274  return m_Impl

->Iterate(priority_server);

1294  "Couldn't find any available servers for the "

+

1301  m_Impl

->GetDiscoveredServers(servers);

1305  "Couldn't find any available servers for the "

+

1306  m_Impl

->m_ServiceName +

" service."

);

1319  m_Impl

->GetDiscoveredServers(servers);

1328  return

++circular_iter;

1341  string

error_messages;

1354  if

(!error_messages.empty())

1355

error_messages +=

'\n'

;

1357

error_messages += (*it)->m_ServerInPool->m_Address.AsString();

1358

error_messages +=

": "

;

1359

error_messages += ex.

what

();

1362  if

(!error_messages.empty())

1363

error_messages +=

'\n'

;

1365

error_messages += (*it)->m_ServerInPool->m_Address.AsString();

1366

error_messages +=

": "

;

1367

error_messages += ex.

what

();

1371  if

(!error_messages.empty()) {

1387  m_Impl

->m_Listener->SetErrorHandler(error_handler);

1392  m_Impl

->m_Listener->SetWarningHandler(warning_handler);

1408  return

!loc.second ? loc.first->second :

1409

(loc.first->second =

1427  for

(

auto

& service_name:

m_Allowed

) {

1450  result

.SetByKey((*it).GetServerAddress(), exec_to_json.

ExecOn

(*it));

1463  void

OnErrorImpl(

const string

&,

CNetServer

&)

override

{}

1464  void

OnWarningImpl(

const string

&,

CNetServer

&)

override

{}

1471

registry_builder, sections);

Checksum and hash calculation classes.

CChecksum – Checksum calculator.

Helper hook-up class that installs default logging/registry/locking (but only if they have not yet be...

This stream exchanges data with a named service, in a constraint that the service is implemented as o...

void Release()

Manually force the resource to be released.

static CJsonNode NewObjectNode()

Create a new JSON object node.

Exception thrown when the requested blob is older than the requested age.

NetCache internal exception.

NetSchedule internal exception.

void StickToServer(SSocketAddress address)

CNetRef< SNetServerPoolImpl > m_Impl

void SetCommunicationTimeout(const STimeout &to)

const STimeout & GetCommunicationTimeout() const

SExecResult ExecWithRetry(const string &cmd, bool multiline_output=false)

Execute remote command 'cmd', wait for the reply, check if it starts with 'OK:', and return the remai...

CNetRef< SNetServiceIteratorImpl > m_Impl

function< bool(const string &, CNetServer)> TEventHandler

void SetErrorHandler(TEventHandler error_handler)

CNetRef< SNetServiceImpl > m_Impl

CNetServiceIterator FindServer(INetServerFinder *finder, EIterationMode mode=eSortByLoad)

const string & GetServiceName() const

static bool IsUsingXSiteProxy()

CNetServer GetServer(unsigned host, unsigned short port)

void PrintCmdOutput(const string &cmd, CNcbiOstream &output_stream, ECmdOutputStyle output_style, CNetService::EIterationMode=CNetService::eSortByLoad)

CNetServiceIterator ExcludeServer(CNetServer::TInstance server)

Start iteration excluding 'server' (return the next server after 'server' or NULL).

@ eMultilineOutput_NetCacheStyle

@ eMultilineOutput_NoHeaders

void ExecOnAllServers(const string &cmd)

CNetServiceIterator IterateByWeight(const string &key)

static CNetService Create(const string &api_name, const string &service_name, const string &client_name)

CNetServer::SExecResult FindServerAndExec(const string &cmd, bool multiline_output=false)

void SetWarningHandler(TEventHandler warning_handler)

bool IsLoadBalanced() const

CNetServerPool GetServerPool()

CNetServiceIterator Iterate(EIterationMode mode=eSortByLoad)

CNetService Clone(const string &name)

static void AllowXSiteConnections()

static TServers DiscoverImpl(const string &, unsigned, shared_ptr< void > &, pair< string, const char * >, int, unsigned long)

void OnResourceRequested()

CTimeout – Timeout interval.

This class is for use by the grid_cli utility only.

virtual CJsonNode ExecOn(CNetServer server)=0

virtual bool Consider(CNetServer server)=0

virtual CNetServer BeginIteration()=0

virtual CNetServer NextServer()=0

SRandomServiceTraversal(CNetService::TInstance service)

virtual CNetServer NextServer()

CNetServiceIterator m_Iterator

virtual CNetServer BeginIteration()

iterator_bool insert(const value_type &val)

container_type::value_type value_type

iterator_bool insert(const value_type &val)

static SQLCHAR output[256]

static const struct type types[]

const string & GetProgramExecutablePath(EFollowLinks follow_links=eIgnoreLinks) const

Get the application's executable path.

static CNcbiApplicationGuard InstanceGuard(void)

Singleton method.

#define ITERATE(Type, Var, Cont)

ITERATE macro to sequence through container elements.

const string & GetProgramDisplayName(void) const

Get the application's "display" name.

#define NON_CONST_ITERATE(Type, Var, Cont)

Non constant version of ITERATE macro.

void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)

@ eTakeOwnership

An object can take ownership of another.

Uint4 GetChecksum(void) const

Return calculated checksum.

void AddChars(const char *str, size_t len)

Update current control sum with data provided.

EIO_Status CONN_GetSOCK(CONN conn, SOCK *sock)

Get an underlying SOCK handle for connection that is implemented as a socket.

static CRequestContext & GetRequestContext(void)

Shortcut to CDiagContextThreadData::GetThreadData().GetRequestContext()

#define ERR_POST(message)

Error posting with file, line number information but without error codes.

#define LOG_POST(message)

This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...

TErrCode GetErrCode(void) const

Get error code.

#define NCBI_THROW(exception_class, err_code, message)

Generic macro to throw an exception, given the exception class, error code and message string.

const string & GetMsg(void) const

Get message string.

void Warning(CExceptionArgs_Base &args)

#define NCBI_THROW_FMT(exception_class, err_code, message)

The same as NCBI_THROW but with message processed as output to ostream.

virtual const char * what(void) const noexcept

Standard report (includes full backlog).

@ eBlobNotFound

Access denied.

bool Referenced(void) const THROWS_NONE

Check if object is referenced.

TObjectType * Release(void)

Release a reference to the object and return a pointer to the object.

uint32_t Uint4

4-byte (32-bit) unsigned integer

Uint4 TValue

Type of the generated integer value and/or the seed value.

TValue GetRand(void)

Get the next random number in the interval [0..GetMax()] (inclusive)

void Randomize(void)

Re-initialize (re-seed) the generator using platform-specific randomization.

virtual const string & Get(const string &section, const string &name, TFlags flags=0) const

Get the parameter value.

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

unsigned int TSERV_Type

Bitwise OR of ESERV_Type[Special].

#define SERV_LOCALHOST

Special values for the "preferred_host" parameter.

@ fSERV_IncludeSuppressed

#define SOCK_NetToHostShort

unsigned short SOCK_HostToNetShort(unsigned short value)

See man for the BSDisms, htonl() and htons().

void Reset(SOCK sock, EOwnership if_to_own, ECopyTimeout whence)

Close the current underlying "SOCK" (if any, and if owned), and from now on use "sock" as the underly...

EIO_Status SOCK_Pushback(SOCK sock, const void *data, size_t size)

Push the specified data back to the socket's input queue (in the socket's internal read buffer).

static CNCBI_IPAddr GetLocalHostAddress(ESwitch reget=eDefault)

Local host address in network byte order (cached for faster retrieval)

EIO_Status SOCK_CreateOnTop(const void *handle, size_t handle_size, SOCK *sock)

[SERVER-side] Create a socket on top of a "handle".

EIO_Status Write(const void *buf, size_t size, size_t *n_written=0, EIO_WriteMethod how=eIO_WritePersist)

Write to socket.

IO_PREFIX::ostream CNcbiOstream

Portable alias for ostream.

static string PrintableString(const CTempString str, TPrintableMode mode=fNewLine_Quote|fNonAscii_Passthru)

Get a printable version of the specified string.

static SIZE_TYPE FindNoCase(const CTempString str, const CTempString pattern, SIZE_TYPE start, SIZE_TYPE end, EOccurrence which=eFirst)

Find the pattern in the specified range of a string using a case insensitive search.

static void TruncateSpacesInPlace(string &str, ETrunc where=eTrunc_Both)

Truncate whitespace in a string (in-place)

CNanoTimeout GetRemainingTime(void) const

Get time left to the expiration.

const long kMilliSecondsPerSecond

Number milliseconds in one second.

unsigned long GetAsMilliSeconds(void) const

Get as number of milliseconds.

bool IsInfinite(void) const

Check if the deadline is infinite.

const TArgs & GetArgs(void) const

Get the const list of arguments.

const STimeout * g_CTimeoutToSTimeout(const CTimeout &cto, STimeout &sto)

CTimeout/STimeout adapters.

const char * IO_StatusStr(EIO_Status status)

Get the text form of an enum status value.

@ eIO_Success

everything is fine, no error occurred

Definition of all error codes used in connect services library (xconnserv.lib and others).

static void text(MDB_val *v)

constexpr auto sort(_Init &&init)

const struct ncbi::grid::netcache::search::fields::KEY key

#define FWD_RR_KEEPALIVE

Try to reuse the connection.

#define FWD_RR_FIREWALL

FWDaemon request / reply.

#define FWD_RR_REJECTMASK

#define FWD_RR_MAX_SIZE

Maximal accepted request/reply size.

Parameters initialization model.

TNCBI_IPv6Addr * NcbiIPv4ToIPv6(TNCBI_IPv6Addr *addr, unsigned int ipv4, size_t pfxlen)

Embed a passed network byte order IPv4 address into an IPv6 address using the specified prefix length...

const char * LBSMD_GetHostParameter(unsigned int addr, const char *name)

IMessage/IMessageListener interfaces and basic implementations.

void SleepMilliSec(unsigned long ml_sec, EInterruptOnSignal onsignal=eRestartOnSignal)

NetCache API exception declarations.

CJsonNode g_ExecToJson(IExecToJson &exec_to_json, CNetService service, CNetService::EIterationMode iteration_mode)

This function is for use by the grid_cli utility only.

void g_AppendClientIPSessionIDHitID(string &cmd)

#define LBSMD_PENALIZED_RATE_BOUNDARY

DEFINE_STATIC_FAST_MUTEX(s_RndLock)

static CRandom::TValue s_GetRand(CRandom::TValue max_value)

void g_AppendClientIPAndSessionID(string &cmd, const CRequestContext &req)

pair< SNetServerInPool *, double > TServerRate

vector< TServerRate > TNetServerList

void g_AppendHitID(string &cmd, CRequestContext &req)

#define RETRY_DELAY_DEFAULT

#define CONNECTION_MAX_RETRIES

static CMiniMutex s_RndLock

void OnWarning(const string &warn_msg, CNetServer &server)

virtual void DeleteThis()

Virtual method "deleting" this object.

TNetServerList::const_iterator m_SuppressedBegin

SDiscoveredServers * m_NextGroupInPool

unsigned m_DiscoveryIteration

void Reset(unsigned discovery_iteration)

CRef< INetServerConnectionListener > m_Listener

SFailOnlyWarnings(CRef< INetServerConnectionListener > listener)

CRef< SNetServerInPool > m_ServerInPool

static void ConnectImpl(CSocket &, SConnectDeadline &, const SSocketAddress &, const SSocketAddress &)

CNetServer::SExecResult ConnectAndExec(const string &cmd, bool multiline_output, bool retry_on_exception=false)

SThrottleStats m_ThrottleStats

CNetServerPool m_ServerPool

CNetServer GetServer(SNetServiceImpl *service, SSocketAddress server_address)

STimeout m_FirstServerTimeout

void ResetServerConnections()

CRef< SNetServerInPool > ReturnServer(SNetServerInPool *server_impl)

virtual ~SNetServerPoolImpl()

void Init(CSynRegistry &registry, const SRegSynonyms &sections)

SNetServerPoolImpl(INetServerConnectionListener *listener)

TLBSMAffinity m_LBSMAffinity

SSocketAddress m_EnforcedServer

SNetServerInPool * FindOrCreateServerImpl(SSocketAddress server_address)

SThrottleParams m_ThrottleParams

INetServerConnectionListener::TPropCreator m_PropCreator

TNetServerByAddress m_Servers

void Swap(SNetServiceImpl &impl, unsigned &n)

EServiceType m_ServiceType

CRef< INetServerConnectionListener > m_Listener

CNetServerPool m_ServerPool

void DiscoverServersIfNeeded()

CNetServer GetServer(SSocketAddress server_address)

@ eRethrowAllServerErrors

static SNetServiceImpl * Create(const string &api_name, const string &service_name, const string &client_name, INetServerConnectionListener *listener, CSynRegistry &registry, SRegSynonyms &sections, const string &ns_client_name=kEmptyStr)

shared_ptr< void > m_NetInfo

void Init(CSynRegistry &registry, SRegSynonyms &sections, const string &ns_client_name)

unsigned m_LatestDiscoveryIteration

CNetServer::SExecResult FindServerAndExec(const string &cmd, bool multiline_output)

CSimpleRebalanceStrategy m_RebalanceStrategy

SNetServiceImpl(const string &api_name, const string &service_name, const string &client_name, INetServerConnectionListener *listener, CSynRegistry &registry, const SRegSynonyms &sections)

SNetServiceIteratorImpl * Iterate(CNetServer::TInstance priority_server)

unsigned long m_ConnectionRetryDelay

CFastMutex m_DiscoveryMutex

void GetDiscoveredServers(CRef< SDiscoveredServers > &discovered_servers)

void IterateUntilExecOK(const string &cmd, bool multiline_output, CNetServer::SExecResult &exec_result, IServiceTraversal *service_traversal, EServerErrorHandling error_handling)

shared_ptr< void > CreateRetryGuard(SRetry::EType type)

SDiscoveredServers * m_DiscoveredServers

SDiscoveredServers * m_ServerGroupPool

static SNetServiceImpl * Clone(SNetServerInPool *server, SNetServiceImpl *prototype)

unsigned m_ConnectionMaxRetries

virtual ~SNetServiceImpl()

bool IsInService(CNetServer::TInstance server)

SDiscoveredServers * AllocServerGroup(unsigned discovery_iteration)

TNetServerList::const_iterator m_Position

CRef< SDiscoveredServers > m_ServerGroup

TNetServerList::const_iterator m_Pivot

SNetServiceIterator_RandomPivot(SDiscoveredServers *server_group_impl, TNetServerList::const_iterator pivot)

TRandomIterators m_RandomIterators

TRandomIterators::const_iterator m_RandomIterator

TNetServerList::const_iterator m_ServerListIter

SNetServiceIterator_Weighted(SDiscoveredServers *server_group_impl, Uint4 key_crc32)

vector< SServerRank >::const_iterator m_CurrentServerRank

SServerRank x_GetServerRank(TNetServerList::const_iterator server) const

vector< SServerRank > m_ServerRanks

bool IsAllowed(const string &service_name) const

void AddToAllowed(const string &service_name)

set< string, PNocase > m_Allowed

TNetServiceByName m_ServiceByName

CNetService GetServiceByNameImpl(const string &, SNetServiceImpl *)

CFastMutex m_ServiceMapMutex

CNetService GetServiceByName(const string &service_name, SNetServiceImpl *prototype)

static void ConnectXSite(CSocket &, SNetServerImpl::SConnectDeadline &, const SSocketAddress &, const string &)

static void InitXSite(CSynRegistry &registry, const SRegSynonyms &sections)

SNoRetryNoErrors(SNetServiceImpl *service)

void Set(CNetService::TEventHandler error_handler)

CNetRef< SNetServiceImpl > m_Service

SNoRetry(SNetServiceImpl *service)

static SSocketAddress Parse(const string &address, SHost::EName name=SHost::EName::eResolved)

void Init(CSynRegistry &registry, const SRegSynonyms &sections)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4