Newer
Older
// TMSSBridge.h: Implementation of the TMSS Bridge, interface between MAC Scheduler and TMSS
//
// Copyright (C) 2020
// ASTRON (Netherlands Foundation for Research in Astronomy)
// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// $Id$
#ifndef TMSSBRIDGE_H
#define TMSSBRIDGE_H
#include <Common/LofarTypes.h>
#include <Common/Exception.h>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <jsoncpp/json/json.h>
namespace LOFAR {
using namespace boost::posix_time;
class TMSSBridge
{
public:
// Just creates an object and registers the connection parameters.
TMSSBridge ();

Jorrit Schaap
committed
TMSSBridge (const std::string &hostname, int port, const std::string &username, const std::string &password);
~TMSSBridge ();
Json::Value getSubTask(int subtask_id);
Json::Value getSubTasksStartingInThreeMinutes();
Json::Value getActiveSubTasks();
Json::Value getFinishingSubTasks();
string getParsetAsText(int subtask_id);
Jörn Künsemöller
committed
string setSubtaskState(int subtask_id, const std::string& state);
// Actually the next method are private, make it public to be able to use in UnitTest++
vector<string> translateHttpResultToSortedUrlList(Json::Value result);
// http request to TMSS
Jörn Künsemöller
committed
string httpQuery(const string& target, const string& query_method="GET", const string& data="");
Json::Value httpGETAsJson(const string& target);
private:
// Copying is not allowed
TMSSBridge(const TMSSBridge&);
TMSSBridge& operator=(const TMSSBridge&);
string itsUser;
string itsPassword;
string itsHost;
int itsPort;
};
EXCEPTION_CLASS(TMSSBridgeException, LOFAR::Exception);
};//MainCU
};//LOFAR