// file: $isip/doc/examples/class/mmedia/mmedia_example_09/example.cc // // isip include files // #include #include #include // this example demonstrates how to use the MachineDatabase object // int main(int argc, const char** argv) { // declare MachineDatabase objects // String val; MachineDatabase mdb; val.assign(L"XYZ"); // verify the database name // mdb.setDataBaseName(val); if (!mdb.getDataBaseName().eq(val)) { Console::put(L"invalid MachineDatabase\n"); } // retrieve the list of machines in the database // Vector& machines = mdb.getDataBase(); if (!mdb.isEmpty()) { Console::put(L"invalid MachineDatabase\n"); } // set the number of machines // machines.setLength(2); // set the attributes for the first machine // VectorDouble speed_00(1); machines(0).setProtocol(Machine::REMOTE_SHELL); val.assign(L"isip100.isip.msstate.edu"); machines(0).setNodeName(val); val.assign(L"i86pc"); machines(0).setArchitecture(val); machines(0).setNumProcessors((long)1); speed_00(0) = (double)8.0e8; machines(0).setProcessorSpeed(speed_00); machines(0).setMainMemory((double)5.12e8); machines(0).setSwapMemory((double)9.2e7); val.assign(L"SunOS"); machines(0).setOS(val); val.assign(L"Generic_106542-20"); machines(0).setOSVersion(val); // set the attributes of the second machine // VectorDouble speed_01(2); machines(1).setProtocol(Machine::REMOTE_SHELL); val.assign(L"isip217.isip.msstate.edu"); machines(1).setNodeName(val); val.assign(L"i86pc"); machines(1).setArchitecture(val); machines(1).setNumProcessors((long)2); speed_01(0) = (double)1.0e9; speed_01(1) = (double)1.0e9; machines(1).setProcessorSpeed(speed_01); machines(1).setMainMemory((double)2.048e9); machines(1).setSwapMemory((double)3.0e7); val.assign(L"SunOS"); machines(1).setOS(val); val.assign(L"Generic_108529-14"); machines(1).setOSVersion(val); // verify the i/o methods // Filename file_text; Filename file_bin; Integral::makeTemp(file_text); Integral::makeTemp(file_bin); // write the database in ascii and binary // Sof sof0; sof0.open(file_text, File::WRITE_ONLY, File::TEXT); Sof sof1; sof1.open(file_bin, File::WRITE_ONLY, File::BINARY); mdb.write(sof0, 0); mdb.write(sof1, 0); sof0.close(); sof1.close(); // read the database in ascii and binary // sof0.open(file_text); sof1.open(file_bin); MachineDatabase mdb0; MachineDatabase mdb1; mdb0.read(sof0, 0); mdb1.read(sof1, 0); sof0.close(); sof1.close(); // verify that the databases are the same // if (!mdb.eq(mdb0)) { Console::put(L"invalid MachineDatabase\n"); } if (!mdb.eq(mdb1)) { Console::put(L"invalid MachineDatabase\n"); } // exit gracefully // Integral::exit(); }