samedi 28 mars 2015

How to call a variable from another file?


I will try to be as succinct as possible. I Have the following files in my:


Given below DBAccess2.h



#ifndef DBAccess2_HH
#define DBAccess2_HH

#include <iostream> //NOTE-I have deleted headers for sake of readability

using namespace std;

//=========================//
struct DeviceStatus
{
string DevStat_Addr;
string DevStat_EstbCD;
string DevStat_CPUID;

friend inline std::ostream &operator<<(std::ostream &out, DeviceStatus const& Dev)
{
return out << "\n("<< Dev.DevStat_Addr << "," << Dev.DevStat_EstbCD << "," << Dev.DevStat_CPUID << ")\n\n";
}
};
//=========================//

class sqliteDB {

using Records = std::list<DeviceStatus>;
Records Device_Status_list;

public:
list<DeviceStatus> GET_ALL_Device_Status();
Records const& get() const { return Device_Status_list; }
void writeJson(std::ostream& os) const;
void printList() const;
};
#endif


Below is DBAccess22.cpp



#include <iostream> //NOTE-I have deleted headers for sake of readability
#include "DBAccess2.h"
//====XX===//
list<DeviceStatus> sqliteDB::GET_ALL_Device_Status()
{
//==SOME CODE TO ACCESS SQLITE DATABASE===//

return Device_Status_list;
}
//====XX===//
void sqliteDB::writeJson(std::ostream& os) const {
using namespace boost::property_tree;
ptree pt;

for (auto &entry : Device_Status_list)
{
pt.add("Addr", entry.DevStat_Addr);
pt.add("EstbCD", entry.DevStat_EstbCD);
pt.add("CPUID", entry.DevStat_CPUID);
}
write_json(os, pt, false);
}
//====XX===//


Below is POST1.h file:



#ifndef POST1_HH
#define POST1_HH
#include <iostream> //NOTE-I have deleted headers for sake of readability
#include "DBAccess2.h"

class POST1
{

public:
string TokenNo;
string CommandStatus;
string JSON_Cmnd_String;

void POST_Device_Status();
};

#endif


Below is POST1.cpp:



#include <iostream> //NOTE-I have deleted headers for sake of readability
#include "DBAccess2.h"
#include "POST1.h"

using namespace std ;

void POST1::POST_Device_Status()
{
POST1 POST_OBJ;

POST_OBJ.TokenNo = "1122";
POST_OBJ.CommandStatus = "0";
POST_OBJ.JSON_Cmnd_String = "??????"; //I Want os into this

cout << "Token is:" << POST_OBJ.TokenNo << endl;
cout << "CommandStatus is:" << POST_OBJ.CommandStatus << endl;
cout << "JSON_Cmnd_String is:" << POST_OBJ.JSON_Cmnd_String << endl;
}


And below is my main.cpp:



#include "DBAccess2.h"
#include "POST1.h"
using namespace std ;

template <typename List>
static void printList(List const& list) {
for (auto& r : list) std::cout << r << "";
}

void dump(sqliteDB const& db)
{
printList(db.get());
db.writeJson(std::cout);
}

int main()
{
sqliteDB object1;
POST1 object2;

dump(object1);
object1.GET_ALL_Device_Status();

dump(object1);
object2.POST_Device_Status();

return 0;
}


In file DBAccess22.cpp variable os contains some data. I am trying call os into POST1.cpp (see commented) but I get various errors. how can I do that ?


Note: I am new to c++ (2 weeks old).




Aucun commentaire:

Enregistrer un commentaire