[OPUS]

Node - A field object that stores the NODE portion of a PSTAT.


Availability:

This class is available for the OPUS Blackboard API. The initial OPUS 2.0 release is described here

Constructors:
Node( )
~Node( )

Methods:
clone( ) returns a copy of this object
name( ) gets the field name

Description

Node objects contain the host name on which the process that owns the PSTAT is running. This field, along with the Pid field, uniquely identify a PSTAT on the PSTAT blackboard.

Derived from

Field

Example

  
    #include <iostream>
    #include "file_pstat_bb.h"
    #include "file_pstat.h"
    #include "pid.h"
    #include "node.h"
    #include "opus_lock.h"
  
    using namespace std;
  
    // The following example uses the File PSTAT Blackboard to find
    // an application's PSTAT on disk, then delete it.
    int main(int argc, char* argv[])
    {
                                              // constructor takes
                                              // OPUS_HOME_DIR path
       File_pstat_bb* pbb = new File_pstat_bb("/home/opus/pstats/");
       Pstat*      fpstat = pbb->new_pstat(); // padded except for Pid &
                                              // Node
  
       Pid* pid = new Pid(123);               // replace PID in PSTAT
       fpstat->set_field(pid);
       delete pid;
  
       Node* node = new Node("foo");          // replace NODE in PSTAT
       fpstat->set_field(node);
       delete node;
  
       fpstat->search_fill();                 // place search characters in
                                              // remaining fields
  
       vector<Entry*> res;
       if (pbb->search(fpstat, res)) {        // search for PSTAT
          Opus_lock* lck = 0;
          try {                               // attempt lock on PSTAT
             lck = pbb->lock_entry(res[0]);
             pbb->erase(res[0]);              // delete it
             cout << "Deleted PSTAT: " << fpstat->str() << endl;
          }
          catch(...) {
             cout << "Failed to delete PSTAT: " << res[0]->str()
                  << endl;
          }
          delete lck;                         // release & delete
          delete res[0];
       } else {
          cout << "Could not find PSTAT: " << fpstat->str() << endl;
       }
       delete fpstat;
       delete pbb;
       return(0);
    }
  

See Also:


Node::Node - The Node constructor.

Synopsis


Node::Node(
           const string& s) // I - node name

Node::Node(
           const Node& di) // I - object to initialize from

Description

This method constructs a new Node object using the supplied node name. If no node is specified, the host name is used to initialize the object.

Exceptions Thrown

none


Node::~Node - The Node destructor.

Synopsis


Node::~Node()

Description

This method destroys the object.

Exceptions Thrown

none


Node::clone - Create a copy of this object.

Synopsis


Field* Node::clone() const

Description

This method creates a new Node object, initialized by this object, off the heap and returns a pointer to the new object. The client should delete the returned object when it is no longer needed.

Returns

    A pointer to the new Node object initialized by this object.

Exceptions Thrown

none


Node::name - Get the field name

Synopsis


string Node::name() const 

Description

This method returns the name of the field, "NODE".

Returns

    string field name

Exceptions Thrown

none


OPUS API index · STScI Home Page · Search · Topics · Index

Copyright © 1997-2000 The Association of Universities for Research in Astronomy, Inc. All Rights Reserved.


For more information, contact opushelp@stsci.edu

Last modified: 25 April 2000