11#ifndef __Pulsar_Agent_h 
   12#define __Pulsar_Agent_h 
   14#include "Pulsar/Archive.h" 
   24  class Archive::Agent : 
public Reference::Able {
 
   32    virtual bool advocate (
const char* filename) = 0;
 
   35    virtual std::string get_name () = 0;
 
   38    virtual std::string get_description () = 0;
 
   41    virtual Archive* new_Archive () = 0;
 
   44    static std::string get_plugin_path (
const char* shell_variable);
 
   47    static void report ();
 
   50    static std::string get_list ();
 
   53    static void get_list( std::vector<std::pair<std::string,std::string> >& );
 
   58    static std::string plugin_path;
 
   70  template<
class Plugin>
 
   71    class Archive::Advocate : 
public Agent {
 
   76    Advocate () { entry.get(); }
 
   79    Archive* new_Archive () { 
return new Plugin; }
 
   82    static void ensure_linkage () { entry.get(); }
 
   87    static Registry::List<Archive::Agent>::Enter<
typename Plugin::Agent> entry;
 
   92  template<
class Plugin>
 
   93    Registry::List<Archive::Agent>::Enter<
typename Plugin::Agent> 
 
   94    Archive::Advocate<Plugin>::entry;
 
Archive()
Default constructor.
Definition Archive.C:67
Defines the PSRCHIVE library.
Definition CalSource.h:17