SasClientFunction.java
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:8k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: SasClientFunction.java,v 1.3.2.3 2009/01/28 12:57:21 prathika Exp $ */
  2. /*
  3.  * @(#)SasClientFunction.java
  4.  * Copyright (c) 1996-2009 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7. import java.applet.*;
  8. import java.awt.*;
  9. import java.util.*;
  10. import java.io.*;
  11. import java.net.*;
  12. import com.adventnet.snmp.snmp2.*;
  13. public class SasClientFunction {
  14.     // This help/debug window only has a text area and a close button.
  15.   TextArea text = null;
  16.   Button close = null;
  17.     // We need a reference to our applet to get some data
  18.   AdventSasDemo sasBrowser = null;
  19.     // The fonts used
  20.   Font fontb;
  21.   Font font;
  22.   
  23.   SASClient sasclient;
  24.  
  25. /**
  26.  * The constructor takes the applet as an argument. 
  27.  * It sets up the window and calls initSnmp()
  28.  */
  29.   public SasClientFunction(AdventSasDemo  app) { 
  30.     sasBrowser = (AdventSasDemo) app;
  31.     initSnmp();
  32.   } // end of constructor
  33.  void initSnmp() {
  34.     try {
  35.         sasclient = new SASClient(sasBrowser, true);
  36.         sasclient.start();
  37.     }
  38.     catch (Exception e) {
  39.         System.out.println("Error : " + e.getMessage());
  40.     }
  41.  }
  42. /** If a sub-node is selected, we go down the MIB tree */
  43.   void downTree(String child) {
  44.   
  45.     String dir;
  46.     if(child.equals(".." + File.separator))
  47.         dir = sasBrowser.getPrevDir(sasBrowser.currentDir.getText());
  48.     else
  49.         dir = new String(sasBrowser.currentDir.getText() + child + "/");
  50.     if(dir.equals(""))dir = dir + "/";
  51.     listFiles(dir);
  52.   } // end of downTree()
  53.   void println(String s) {
  54.     sasBrowser.resultArea.setText(s);
  55.   }
  56. /** For Demonstrating SAS functionalities */    
  57.     void saveFile(String saveText, String fileName)
  58.     {
  59.         try {
  60.             byte data[] = new byte[saveText.length()];
  61.             data = saveText.getBytes();
  62.             if(sasclient != null) {
  63.                 sasclient.saveFile(getSelectedDirPath()+fileName,data);
  64.                 listFiles(sasBrowser.currentDir.getText());
  65.             }
  66.             else
  67.                 System.out.println("Not connected to sas");
  68.         }
  69.         catch (Exception e){
  70.             System.out.println(e);
  71.             e.printStackTrace();
  72.         }
  73.     }
  74.     void appendFile(String appendText, String fileName)
  75.     {
  76.         
  77.         byte data[] = new byte[appendText.length()];
  78.         try {
  79.             data = appendText.getBytes();
  80.         
  81.             if(sasclient != null) {
  82.                 sasclient.appendFile(getSelectedDirPath()+fileName,data);
  83.                 listFiles(sasBrowser.currentDir.getText());
  84.             }
  85.             else
  86.                 System.out.println("Not connected to sas");
  87.         }
  88.         catch (Exception e){
  89.             System.out.println(e);
  90.             e.printStackTrace();
  91.         }
  92.     }
  93.     void deleteFile(String fileName)
  94.     {
  95.         if(fileName == null) {
  96.             println("No file selected");
  97.             return;
  98.         }
  99.         try {
  100.             if(sasclient != null) {
  101.                 sasclient.deleteFile(getSelectedDirPath()+fileName);
  102.                 listFiles(sasBrowser.currentDir.getText());
  103.             }
  104.             else
  105.                 System.out.println("Not connected to sas");
  106.         }
  107.         catch (Exception e){
  108.             System.out.println(e);
  109.             e.printStackTrace();
  110.         }
  111.     }
  112.     void createDir(String dirName)
  113.     {
  114.         try {
  115.             if(sasclient != null)
  116.                 sasclient.createDir(getSelectedDirPath()+dirName);
  117.             else
  118.             {
  119.                 println("Not connected to SAS");
  120.                 return;
  121.             }
  122.             listFiles(sasBrowser.currentDir.getText());
  123.          }
  124.          catch (Exception e){
  125.             System.out.println(e);
  126.             e.printStackTrace();
  127.         }
  128.     }
  129.     void deleteDir()
  130.     {
  131.         String dirName = sasBrowser.listDir.getSelectedItem();
  132.         if(dirName == null) {
  133.             println("No directory selected");
  134.             return;
  135.         }
  136.             
  137.         try {
  138.             if(sasclient != null) {
  139.                 sasclient.deleteDir(getSelectedDirPath()+dirName);
  140.                 listFiles(sasBrowser.currentDir.getText());
  141.             }
  142.             else {
  143.                 println("Not connected to SAS");
  144.                 return;
  145.             }
  146.             
  147.          }
  148.          catch (Exception e){
  149.             System.out.println(e);
  150.             e.printStackTrace();
  151.         }
  152.     }
  153.     // some constants for clientCall types
  154.     static int LIST_DIR_REQ = 1;
  155.     static int LIST_DIR_RESP = 2;
  156.     static int GET_FILE_REQ = 3;
  157.     static int GET_FILE_RESP = 4;
  158.     void listFiles(String dir)
  159.     {
  160.         byte data[] = null;
  161.         String listedFiles = null;
  162.         String modDir;
  163.         int i = dir.indexOf("|");
  164.         if(i>0)modDir = dir.substring(i+1);
  165.         else modDir = dir;
  166.         try {
  167.             ByteArrayOutputStream baO = new ByteArrayOutputStream();
  168.             DataOutputStream dO = new DataOutputStream(baO);
  169.             dO.writeInt(LIST_DIR_REQ);
  170.             dO.writeUTF(modDir);
  171.             data = baO.toByteArray();
  172.             if(sasclient != null)
  173.                 data = sasclient.clientCall(data);
  174.             else
  175.             {
  176.                 println("Not connected to SAS server");
  177.                 return;
  178.             }
  179.             
  180.             DataInputStream dI = new DataInputStream(new ByteArrayInputStream(data));
  181.             int type = dI.readInt();
  182.             if(type == LIST_DIR_RESP)
  183.                     listedFiles = dI.readUTF();
  184.         }
  185.         catch (Exception e) {
  186.             System.out.println(e);
  187.             e.printStackTrace();
  188.         }
  189.         
  190.         if(listedFiles != null) {
  191.                 StringTokenizer toks = new StringTokenizer(listedFiles,"n");
  192.                 int num = sasBrowser.childList.getItemCount();
  193.                 if (num>0) sasBrowser.childList.removeAll();
  194.                 num = sasBrowser.listDir.getItemCount();
  195.                 if (num>0) sasBrowser.listDir.removeAll();
  196.                 //To handle netscape when loaded from classpath
  197.                 boolean netscapeRootDir = false;
  198.                 if(dir.length() == 4) {
  199.                         if(dir.indexOf("|/") > 0) netscapeRootDir = true;
  200.                 }
  201.                 if(!((dir.equals("/")) || (dir.equals("\")) || (netscapeRootDir)))
  202.                         sasBrowser.listDir.add(".." + File.separator);
  203.                         while(toks.hasMoreTokens()) {
  204.                                 String file = toks.nextToken();
  205.                                 if(file.indexOf("<DIR>") < 0)
  206.                                         sasBrowser.childList.add(file);
  207.                                 else {
  208.                                         file = file.substring(5);
  209.                                         sasBrowser.listDir.add(file);
  210.                                 }
  211.                         }
  212.         }
  213.         else {
  214.                 sasBrowser.resultArea.setText("Cannot List the Directory");
  215.         }
  216.         sasBrowser.currentDir.setText(dir);
  217.   }
  218.   void getFile()
  219.   {
  220.        String file = new String(sasBrowser.currentDir.getText() + File.separator + sasBrowser.childList.getSelectedItem());
  221.        byte[] data = null;
  222.        String gotFile = null;
  223.        try {
  224.             ByteArrayOutputStream baO = new ByteArrayOutputStream();
  225.             DataOutputStream dO = new DataOutputStream(baO);
  226.             dO.writeInt(GET_FILE_REQ);
  227.             dO.writeUTF(file);
  228.             data = baO.toByteArray();
  229.             if(sasclient != null)
  230.                 data = sasclient.clientCall(data);
  231.             else
  232.             {
  233.                 println("Not connected to sas");
  234.                 return;
  235.             }
  236.         DataInputStream dI = new DataInputStream(new ByteArrayInputStream(data));
  237.         int type = dI.readInt();
  238.         if(type == GET_FILE_RESP)
  239.             gotFile = dI.readUTF();
  240.         else
  241.         {
  242.             println("Not able to get the file");
  243.             return;
  244.         }
  245.         
  246.         FileOutputStream fos = new FileOutputStream(sasBrowser.childList.getSelectedItem() +".sas");
  247.         dO = new DataOutputStream(fos);
  248.         dO.writeBytes(gotFile);
  249.         println("Successfully got the file");
  250.        }
  251.        catch (Exception e) {
  252.             System.out.println(e);
  253.             e.printStackTrace();
  254.        }
  255.   }
  256.   
  257.   String getSelectedDirPath() {
  258.       int i = sasBrowser.currentDir.getText().indexOf("SASusers");
  259.       if (i != -1) return sasBrowser.currentDir.getText().substring(i+8);
  260.       else return "";
  261.   }
  262. }