本文整理汇总了C++中CheckConnection函数的典型用法代码示例。如果您正苦于以下问题:C++ CheckConnection函数的具体用法?C++ CheckConnection怎么用?C++ CheckConnection使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CheckConnection函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UpdateClients
void StepManiaLanServer::UpdateClients()
{
//Go through all the clients and check to see if it is being used.
//If so then try to get a backet and parse the data.
for (unsigned int x = 0; x < Client.size(); ++x)
if (CheckConnection(x) && (Client[x]->GetData(Packet) >= 0))
ParseData(Packet, x);
}
示例2: SetValGTM
/*
* Set values for sequence
*/
int
SetValGTM(char *seqname, GTM_Sequence nextval, bool iscalled)
{
GTM_SequenceKeyData seqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
return conn ? set_val(conn, &seqkey, nextval, iscalled) : -1;
}
示例3: AlterSequenceGTM
/*
* Alter a sequence on the GTM
*/
int
AlterSequenceGTM(char *seqname, GTM_Sequence increment, GTM_Sequence minval,
GTM_Sequence maxval, GTM_Sequence startval, GTM_Sequence lastval, bool cycle, bool is_restart)
{
GTM_SequenceKeyData seqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
return conn ? alter_sequence(conn, &seqkey, increment, minval, maxval, startval, lastval, cycle, is_restart) : 0;
}
示例4: CheckPower
void JohanCity::UpdateTime(float dt) {
clock->Start();
// Optimized version of power checking...
CheckPower(); // crawls from power plant outward...
// Optimized version of water checking...
CheckWater(); // crawls from water source outward...
// TODO: optimize?
CheckConnection();
checktilems = clock->Reset() * 1000.0f;
// Then apply tile info to buildings
CheckBuildingRequisites();
checkbuildingms = clock->Reset() * 1000.0f;
// Done checking for required items? Spend the RCI
for(int i = 0;i < tiles.size();i++) {
for(int j = 0;j < tiles[i].size();j++) {
TileType type = tiles[i][j]->type;
if(type == ttResidential || type == ttCommercial || type == ttIndustrial) {
tiles[i][j]->UpdateTime(dt);
}
// Undo checks (so they won't get invalid)?
tiles[i][j]->checkid = -1;
// tiles[i][j]->powered = false;
// tiles[i][j]->watered = false;
// tiles[i][j]->connected = false;
}
}
updatetilems = clock->Reset() * 1000.0f;
for(std::list<Building*>::iterator i = buildings.begin();i != buildings.end();i++) {
Building* building = *i;
building->UpdateTime(dt);
}
updatebuildingms = clock->Reset() * 1000.0f;
snprintf(timingreport,256,
"Check tile time: %.2f ms\r\nCheck building time: %.2f ms\r\nUpdate tile time: %.2f ms\r\nUpdate building time: %.2f ms\r\n",
checktilems,
checkbuildingms,
updatetilems,
updatebuildingms);
UpdateBuffers();
}
示例5: DropSequenceGTM
/*
* Drop the sequence depending the key type
*
* Type of Sequence name use in key;
* GTM_SEQ_FULL_NAME, full name of sequence
* GTM_SEQ_DB_NAME, DB name part of sequence key
*/
int
DropSequenceGTM(char *name, GTM_SequenceKeyType type)
{
GTM_SequenceKeyData seqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(name) + 1;
seqkey.gsk_key = name;
seqkey.gsk_type = type;
return conn ? close_sequence(conn, &seqkey) : -1;
}
示例6: CreateSequenceGTM
/*
* Create a sequence on the GTM.
*/
int
CreateSequenceGTM(char *seqname, GTM_Sequence increment, GTM_Sequence minval,
GTM_Sequence maxval, GTM_Sequence startval, bool cycle)
{
GTM_SequenceKeyData seqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
return conn ? open_sequence(conn, &seqkey, increment, minval, maxval, startval, cycle) : 0;
}
示例7: RenameSequenceGTM
/*
* Rename the sequence
*/
int
RenameSequenceGTM(char *seqname, const char *newseqname)
{
GTM_SequenceKeyData seqkey, newseqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
newseqkey.gsk_keylen = strlen(newseqname) + 1;
newseqkey.gsk_key = (char *) newseqname;
return conn ? rename_sequence(conn, &seqkey, &newseqkey) : -1;
}
示例8: ReportBarrierGTM
/*
* Report BARRIER
*/
int
ReportBarrierGTM(char *barrier_id)
{
if (!gtm_backup_barrier)
return;
CheckConnection();
if (!conn)
return EOF;
return(report_barrier(conn, barrier_id));
}
示例9: GetSnapshotGTM
GTM_Snapshot
GetSnapshotGTM(GlobalTransactionId gxid, bool canbe_grouped)
{
GTM_Snapshot ret_snapshot = NULL;
CheckConnection();
if (conn)
ret_snapshot = get_snapshot(conn, gxid, canbe_grouped);
if (ret_snapshot == NULL)
{
CloseGTM();
InitGTM();
}
return ret_snapshot;
}
示例10: while
void NetworkThread::Run()
{
while(ReceiveMessages())
{
if(myPacket && !myPacket.endOfPacket())
{
ParseMessages();
myPacket.clear();
}
CheckConnection();
sf::sleep(sf::milliseconds(100));
}
}
示例11: GetNextValGTM
GetNextValGTM(char *seqname)
#endif
{
GTM_Sequence ret = -1;
GTM_SequenceKeyData seqkey;
#ifdef XCP
char *coordName = IS_PGXC_COORDINATOR ? PGXCNodeName : MyCoordName;
int coordPid = IS_PGXC_COORDINATOR ? MyProcPid : MyCoordPid;
int status;
#endif
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
#ifdef XCP
if (conn)
status = get_next(conn, &seqkey, coordName,
coordPid, range, &ret, rangemax);
else
status = GTM_RESULT_COMM_ERROR;
/* retry once */
if (status == GTM_RESULT_COMM_ERROR)
{
CloseGTM();
InitGTM();
if (conn)
status = get_next(conn, &seqkey, coordName, coordPid,
range, &ret, rangemax);
}
if (status != GTM_RESULT_OK)
ereport(ERROR,
(errcode(ERRCODE_INTERNAL_ERROR),
errmsg("%s", GTMPQerrorMessage(conn))));
#else
if (conn)
ret = get_next(conn, &seqkey);
if (ret < 0)
{
CloseGTM();
InitGTM();
}
#endif
return ret;
}
示例12: AcceptResult
/*
* AcceptResult
*
* Checks whether a result is valid, giving an error message if necessary;
* and ensures that the connection to the backend is still up.
*
* Returns true for valid result, false for error state.
*/
static bool
AcceptResult(const PGresult *result)
{
bool OK;
if (!result)
OK = false;
else
switch (PQresultStatus(result))
{
case PGRES_COMMAND_OK:
case PGRES_TUPLES_OK:
case PGRES_EMPTY_QUERY:
case PGRES_COPY_IN:
case PGRES_COPY_OUT:
case PGRES_COPY_BOTH:
/* Fine, do nothing */
OK = true;
break;
case PGRES_BAD_RESPONSE:
case PGRES_NONFATAL_ERROR:
case PGRES_FATAL_ERROR:
OK = false;
break;
default:
OK = false;
psql_error("unexpected PQresultStatus (%d)",
PQresultStatus(result));
break;
}
if (!OK)
{
const char *error = PQerrorMessage(pset.db);
if (strlen(error))
psql_error("%s", error);
CheckConnection();
}
return OK;
}
示例13: DisconnectNow
/* Update is run regulary and we gather the state of the Wiiremote and see if the user have pressed on a button or moved the wiiremote
This could have been done with callbacks instead but it doesn't look nice in C++*/
void CWiiRemote::Update()
{
if (m_DisconnectWhenPossible)
{//If the user have choosen to disconnect or lost comunication
DisconnectNow(true);
m_DisconnectWhenPossible = false;
}
#ifdef CWIID_OLD
if(m_connected)
{//Here we check if the connection is suddenly broken
if (!CheckConnection())
{
DisconnectNow(true);
return;
}
}
#endif
}
示例14: GetNextValGTM
/*
* Get the next sequence value
*/
GTM_Sequence
GetNextValGTM(char *seqname)
{
GTM_Sequence ret = -1;
GTM_SequenceKeyData seqkey;
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
if (conn)
ret = get_next(conn, &seqkey);
if (ret < 0)
{
CloseGTM();
InitGTM();
}
return ret;
}
示例15: SetValGTM
/*
* Set values for sequence
*/
int
SetValGTM(char *seqname, GTM_Sequence nextval, bool iscalled)
{
GTM_SequenceKeyData seqkey;
#ifdef XCP
char *coordName = IS_PGXC_COORDINATOR ? PGXCNodeName : MyCoordName;
int coordPid = IS_PGXC_COORDINATOR ? MyProcPid : MyCoordPid;
#endif
CheckConnection();
seqkey.gsk_keylen = strlen(seqname) + 1;
seqkey.gsk_key = seqname;
#ifdef XCP
return conn ? set_val(conn, &seqkey, coordName, coordPid, nextval, iscalled) : -1;
#else
return conn ? set_val(conn, &seqkey, nextval, iscalled) : -1;
#endif
}