示例#1
0
void CManager::WriteKeys(
                    FILE          *fp,
                    char          *key,
                    unsigned char **secret,
                    bool          &done )
{
    char    target[BUFSIZ];

    if ( m_username.GetLength() > 0 ) {
        sprintf( target, "usernameFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_username );
    }

    if ( m_password.GetLength() > 0 ) {
        sprintf( target, "passwordFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_password, key, secret, done );
    }

    if ( m_useOAuth || m_useBASIC ) {
        sprintf( target, "useOAuthFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_useOAuth );

        sprintf( target, "useBasicFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_useBASIC );
    }

    if ( m_oauthToken.GetLength() > 0 ) {
        sprintf( target, "oauthTokenFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_oauthToken, key, secret, done );
    }
    if ( m_oauthTokenSecret.GetLength() > 0 ) {
        sprintf( target, "oauthTokenSecretFor%s",
                 (const char *)m_serviceSymbol );
        writeKey( fp, target, m_oauthTokenSecret, key, secret, done );
    }

    if ( m_screenName.GetLength() > 0 ) {
        sprintf( target, "screennameFor%s", (const char *)m_serviceSymbol );
        writeKey( fp, target, m_screenName );
    }

    sprintf( target, "simultaneousPostAs%s", (const char *)m_serviceSymbol );
    writeKey( fp, target, m_simultaneousPost );

    WriteKeys( fp, &m_sFriendsTimeline, "Friends" );
    WriteKeys( fp, &m_sPublicTimeline,  "Public"  );
    WriteKeys( fp, &m_sUserTimeline,    "User"    );
}
/** Writes single NDArray to the FITS file.
  * \param[in] pArray Pointer to the NDArray to be written
  */
asynStatus 
NDFileFITS::writeFile(NDArray *pArray) {

  static const char *functionName = "writeFile";

  asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW,
            "%s:%s: %lu, %lu\n", 
            driverName, functionName, (unsigned long)pArray->dims[0].size, (unsigned long)pArray->dims[1].size);

  NDArrayInfo arrayInfo;
  pArray->getInfo(&arrayInfo);
  int nx = (int) arrayInfo.xSize;
  int ny = (int) arrayInfo.ySize;
  long naxis    = 2;         // 2-dimensional image
  long naxes[2] = { nx, ny };

  fitsStatus = 0;
  if(fits_create_img(fitsFilePtr, USHORT_IMG, naxis, naxes, &fitsStatus)) {
    fits_get_errstatus(fitsStatus, fits_status_str);
    asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
      "%s::%s error creating fits image: error=%s\n",
      driverName, functionName, fits_status_str);
    fits_clear_errmsg();
    return asynError;
  }
  
  if(fits_write_img(fitsFilePtr, CFITSIO_TUSHORT, 1, naxes[0]*naxes[1], pArray->pData, &fitsStatus)) {
    fits_get_errstatus(fitsStatus, fits_status_str);
    asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
      "%s::%s error writing fits image: error=%s\n",
      driverName, functionName, fits_status_str);
    fits_close_file(fitsFilePtr, &fitsStatus);
    fits_clear_errmsg();
    return asynError;
  }
  
  if(WriteKeys(fitsFilePtr, &fitsStatus)) {
    fits_get_errstatus(fitsStatus, fits_status_str);
    asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
      "%s::%s error writing fits image: error=%s\n",
      driverName, functionName, fits_status_str);
    fits_close_file(fitsFilePtr, &fitsStatus);
    return asynError;
  }
      
  return(asynSuccess);
}