1 #include <../../nrnconf.h> 3 #if defined(__POWERPC__) && defined(__APPLE__) 21 #if !defined(HAVE_LOCKF) 27 #define NRNBBSTMP "nrnbbs" 28 #define NOTIFY "notify" 29 #define NRNBBS "nrnbbs" 30 #define LOCKFILE "lock" 31 #define TMPFILE "temp" 32 #define NOTIFY_SIGNAL SIGUSR1 38 bool equal(
const char*);
45 static const char*
fname(
const char*
name);
47 static void history(
const char* s1,
const char* s2,
const char* s3) {
50 if ((f =
fopen(
fname(
"history"),
"a")) != (FILE*)0) {
58 static void history(
const char* s1,
const char* s2) {
history (s1, s2,
""); }
72 #if !defined(HAVE_LOCKF) 73 while (flock(fileno(
lockfile_), LOCK_EX) != 0) {
75 while (lockf(fileno(
lockfile_), F_LOCK, 0) != 0) {
77 history(
"lockf returned non zero");
83 #if !defined(HAVE_LOCKF) 101 d =
new char[strlen(buf)+1];
109 static char buf[2][256];
146 while (fgets(buf, 256, f)) {
147 buf[strlen(buf) - 1] =
'\0';
148 fscanf(f,
"%d\n", &
id);
150 fprintf(f2,
"%s\n%d\n", buf,
id);
178 pf = (pflag) ? pflag : &f;
199 fprintf(f,
"%s\n%s\n", key, sval);
205 while( fgets(name, 256, f2) && n < 10) {
206 name[strlen(name) - 1] =
'\0';
207 fscanf(f2,
"%d\n", &i);
208 if (strcmp(name, key) == 0) {
210 fprintf(f,
"nrnbbs_notifying %s\n\n", key);
217 for (i=0; i <
n; ++
i) {
233 b = (sscanf(buf,
"%d\n", ipval) == 1) ?
true :
false;
246 while (fgets(name, 256, f)) {
247 name[strlen(name) -1] =
'\0';
248 if (name[0] ==
'\0') {
252 val[strlen(val) - 1] =
'\0';
253 if (!b && strcmp(name, key) == 0) {
259 fprintf(f2,
"%s\n%s\n", name, val);
281 while (fgets(name, 256, f)) {
282 name[strlen(name) - 1] =
'\0';
284 if (strcmp(name, key) == 0) {
311 #if defined(SIGNAL_CAST) 316 for (i = 0; i <
cblist_->count(); ++
i) {
324 cblist_ =
new NrnBBSCallbackList();
336 #if defined(SIGNAL_CAST)
void nrnbbs_wait(bool *pflag)
static NrnBBSCallbackItem NrnBBSCallbackList * cblist_
void nrnbbs_exec(const char *cmd)
sprintf(buf," if (secondorder) {\ " int _i;\" " for(_i=0;_i< %d;++_i) {\" " _p[_slist%d[_i]]+=dt *_p[_dlist%d[_i]];\" " }}\", numeqn, listnum, listnum)
int system(const char *s)
bool nrnbbs_take(const char *key)
const char * string() const
#define implementPtrList(PtrList, T)
void nrnbbs_post_string(const char *key, const char *sval)
bool nrnbbs_look(const char *key)
int const size_t const size_t n
NrnBBSCallbackItem(const char *, NrnBBSCallback)
bool nrnbbs_take_int(const char *key, int *ipval)
bool nrnbbs_take_string(const char *key, char *sval)
static const char * fname(const char *name)
char * getenv(const char *s)
void nrnbbs_post(const char *key)
fprintf(stderr, "Don't know the location of params at %p\, pp)
static void release_lock()
void(* NrnBBSCallback)(const char *)
static const char * nrnbbsdir()
void nrnbbs_post_int(const char *key, int ival)
static RETSIGTYPE nrnbbs_handler(int)
static void history(const char *s1, const char *s2, const char *s3)
virtual ~NrnBBSCallbackItem()
declarePtrList(NrnMessageList, NrnMessage) implementPtrList(NrnMessageList
void nrnbbs_notify(const char *key, NrnBBSCallback cb)