/*******************************************************************************
* TmsControlClient2.cpp TMS API example code
* T.Barnaby, BEAM Ltd, 2007-02-07
*******************************************************************************
*
* This is a very basic example of using the TmsApi to set the
* TMS's cycleNumber and cycleType.
* It is designed to give an overview of using the API.
*/
#include <iostream>
#include <stdio.h>
#include <unistd.h>
#include <TmsD.h>
#include <TmsC.h>
using namespace Tms;
using namespace std;
// Loop sending next cycle information
BError tmsControlLoop(TmsControl& tmsControl){
BError err;
UInt32 cn = 0;
BString ct = "Beam3";
while(1){
// Wait for next cycle information
usleep(1200000);
// Set next cycle information
cn = cn + 1;
ct = "Beam3";
// Send the next cycle information to the TMS server
if(err = tmsControl.setNextCycle(cn, ct)){
cerr << "Error: " << err.getString() << "\n";
}
}
return err;
}
int main(int argc, char** argv){
BError err;
BString host = "localhost";
TmsControl tmsControl;
if(argc == 2)
host = argv[1];
// Connect to the Control service
if(err = tmsControl.connectService(BString("//") + host + "/tmsControl")){
cerr << "Error: " << err.getString() << "\n";
return 1;
}
// Set the network priority high
if(err = tmsControl.setPriority(BSocket::PriorityHigh)){
cerr << "Error: " << err.getString() << "\n";
return 1;
}
// Set the TmsServer thread priority high
if(err = tmsControl.setProcessPriority(PriorityHigh)){
cerr << "Error: " << err.getString() << "\n";
return 1;
}
if(err = tmsControlLoop(tmsControl)){
cerr << "Error: " << err.getString() << "\n";
return 1;
}
return 0;
}